Introduction

Datasets to be used

We selected three datasets (Projects) from the “Harmonized Cancer Datasets” section from the Genomic Data Commons Data Portal with “transcriptome profiling” as “Data Category” and “RNA-Seq” as “Experimental Strategy”:

Project Primary Site Focus Usage Access
TCGA-COAD colon Colon Adenocarcinoma controls https://portal.gdc.cancer.gov/projects/TCGA-COAD
TCGA-GBM brain Glioblastoma Multiforme cases https://portal.gdc.cancer.gov/projects/TCGA-GBM
TCGA-LGG brain Brain Lower Grade Glioma cases https://portal.gdc.cancer.gov/projects/TCGA-LGG

Planified Analysis

Two main blocks defined the analysis plan:

Block 1: Differential expression analysis

The 1st block includes the traditional analyses to identify differences in gene expression between cases and controls. Here we will perform two analyses:

  1. To identify deferentially expressed (DE) genes between cases and controls.
  2. To identify DE genes between the two sets of glioma, since they include samples of different types of glioma.

Analysis 1

Here we will compare the glioma sets versus the colon set, one at a time

A | TCGA-COAD vs. TCGA-GBM <--- DE genes between colon and glioma
B | TCGA-COAD vs. TCGA-LGG <--- DE genes between colon and glioma

Analysis 2

From this analysis we want to obtain the DE genes that will help to identify samples from “glioblastoma multiforme” and “brain low grade glioma”. Therefore, no “colon adenocarcinoma” samples will be used.

C | TCGA-GBM vs. TCGA-LGG <--- DE genes between glioma and low grade glioma

The first analysis helped to identify genes that classify cases and controls. The current result help classify types of cases.

Block 2: machine learning

This block is focused on machine learning techniques to properly classify patients with (sub-)types of glioma.

Analysis 3

This analysis is focused on understanding how clustering algorithms works and classifies samples. Therefore, knn, k-means, herarchical clustering, Gaussian Mixture Model (GMM) and DBSCAN will be used to classify the samples but:

  1. The three datasets with all the features will be clustered (asking for three group in non supervised analysis).
  2. The three datasets but with only the union of the DE genes from analysis 1 and analysis 2.
  3. Only glioma datases with all the features will be clustered (asking for two group in non supervised analysis)
  4. Only glioma datases but with only the features from analysis 2.
## packages to be used in the analysis
library(Biobase)
library(SummarizedExperiment)
library(TCGAbiolinks)
library(factoextra)
library(edgeR)
library(limma)

library(AnnotationDbi)
library(org.Hs.eg.db)

library(ggvenn)
library(gplots)
library(ggpubr)
library(RColorBrewer)
library(scales)

library(clusterProfiler)
library(rWikiPathways)
library(DOSE)
library(magrittr)
library(enrichplot)
library(Rgraphviz)

library(dplyr)
library(cowplot)
library(kableExtra)
library(tm)
library(wordcloud)

Data

Data download

First all the data from TGCA projects are download.

tcga_gbm <- GDCquery(
  project = "TCGA-GBM",
  data.category = "Transcriptome Profiling",
  experimental.strategy = "RNA-Seq",
  workflow.type = "HTSeq - Counts"
)

GDCdownload(query = tcga_gbm)
tcga_gbm <- GDCprepare(tcga_gbm)
save(tcga_gbm, file="data/tcga_gbm_se.RData")
tcga_lgg <- GDCquery(
  project = "TCGA-LGG",
  data.category = "Transcriptome Profiling",
  experimental.strategy = "RNA-Seq",
  workflow.type = "HTSeq - Counts"
)

GDCdownload(query = tcga_lgg)
tcga_lgg <- GDCprepare(tcga_lgg)
save(tcga_lgg, file="data/tcga_lgg_se.Rdata")
tcga_coad <- GDCquery(
  project = "TCGA-COAD",
  data.category = "Transcriptome Profiling",
  experimental.strategy = "RNA-Seq",
  workflow.type = "HTSeq - Counts"
)

GDCdownload(query = tcga_coad)
tcga_coad <- GDCprepare(tcga_coad)
save(tcga_coad, file="data/tcga_coad_se.RData")

From SummarizedExperiment to ExpressionSet

The SummarizedExperiment objects are converted to ExpressionSet. Data download of the data is a proccess that may require some time and computational cost. In this sense, data are saved as a Rdata file.

class(tcga_gbm)

tcga_gbm <- ExpressionSet(
    assayDat = assays(tcga_gbm)[[1]],
    phenoData = as(data.frame(colData(tcga_gbm)), "AnnotatedDataFrame"),
    featureData = as(data.frame(rowData(tcga_gbm)), "AnnotatedDataFrame"),
    experimentData = MIAME()
)

class(tcga_gbm)
save(tcga_gbm, file="data/tcga_gbm.RData")
class(tcga_lgg)

tcga_lgg <- ExpressionSet(
    assayDat = assays(tcga_lgg)[[1]],
    phenoData = as(data.frame(colData(tcga_lgg)), "AnnotatedDataFrame"),
    featureData = as(data.frame(rowData(tcga_lgg)), "AnnotatedDataFrame"),
    experimentData = MIAME()
)

class(tcga_lgg)
save(tcga_lgg, file="data/tcga_lgg.RData")
class(tcga_coad)

tcga_coad <- ExpressionSet(
    assayDat = assays(tcga_coad)[[1]],
    phenoData = as(data.frame(colData(tcga_coad)), "AnnotatedDataFrame"),
    featureData = as(data.frame(rowData(tcga_coad)), "AnnotatedDataFrame"),
    experimentData = MIAME()
)

class(tcga_coad)
save(tcga_coad, file="data/tcga_coad.RData")

Load data

In the case, you need to load the data from file.

load("data/tcga_gbm.RData")
load("data/tcga_lgg.RData")
load("data/tcga_coad.RData")

Analysis 1

Filtering

The data is generated using RNA-Seq technology and processed with HTSeq, indicating that the expression matrices of the ExpressionSet contains counts:

Therefore is should be analyzed using combining voom with limma.

Let’s see the features(genes) in common across the three sets:

int_fet <- intersect(
  intersect(featureNames(tcga_gbm), featureNames(tcga_lgg)), 
            featureNames(tcga_coad)
)
length(int_fet)
## [1] 56602
#Join cases
raw_exprs <- cbind(
  exprs(tcga_gbm[int_fet, ]),
  exprs(tcga_lgg[int_fet, ]),
  exprs(tcga_coad[int_fet, ])
)
dim(raw_exprs)
## [1] 56602  1224
save(raw_exprs, file="data/raw_exprs.RData")


#groups in dataset
group_f <- as.factor(ifelse(colnames(raw_exprs) %in% sampleNames(tcga_gbm), "gbm",
                          ifelse(colnames(raw_exprs) %in% sampleNames(tcga_lgg), "lgg",
                                 "colon")
                          )
                   )
table(group_f)
## group_f
## colon   gbm   lgg 
##   521   174   529
#Deleting variables
rm(tcga_coad,tcga_gbm,tcga_lgg, int_fet)

In the join dataset, there are 56602 genes and 1224 cases.

Signal Expression Filtering

Three differents filter approach has been follow: + Based on count variance + Based on FilterByExprs function from edgeR (CPM equal to 10 divided by median library size in M) + Based on standard CPM thresold 1

#for filtering purpose data are transformed to log-cpm
myCPM <-cpm(raw_exprs)

#mean and median of library sizes in M
col_sum <- colSums(raw_exprs)
mlib <- mean(col_sum) * 1e-6
mlib
## [1] 44.71759
medlib <- median(col_sum) * 1e-6
medlib
## [1] 46.52847
hist(col_sum * 1e-6, 
     las= 2, col = "navyblue",
     main="Histogram of library sizes", 
     xlab="Library size (M)")
abline(v = mlib, col = "grey")
abline(v = medlib, col = "red")

### Variance filtering
#Based on variance > 1 of counts for each gene
var_set <- apply(raw_exprs, 1, var)
#number of genes retained with var set approach
sum(var_set > 1)
## [1] 41747
### FilterByExprs function
# Based on FilterByExprs function from edgeR
keep.exprs <- filterByExpr(raw_exprs, group = group_f)
#number of genes retained with var set approach
sum(keep.exprs)
## [1] 26231
### CPM equal to standard value 1
# threshold to get upper values
thresh <- myCPM > 1
#cpm equal to 1 is a standard threshold

# Genes which are retained are those whose cpm is 
# above thresh in half of the minimum cases of the 
# less abundant group cases
#n samples retained
keepn <- round(min(tabulate(group_f))*0.5,0)
#genes to retain
keepcpm <- rowSums(thresh) >= keepn
#number of genes retained with cpm > 1 approach
sum(keepcpm)
## [1] 20573
#identifying retained genes
keeprow <- attr(keepcpm,"names")[keepcpm==T]

Genes after filtering for every aproach: + Based on count variance = 41747
+ Based on FilterByExprs function from edgeR = 26231 + Based on standard CPM thresold 1 = 20573

Between the last two, it shouldn’t be a big different, but the first approach is not recommended due to it is calculated only with the variance of the counts, without taking into account library size.

#filter dataset
full_exprs <- raw_exprs[keeprow,]
save(full_exprs, file="data/full_exprs.RData")

#deleting variables
rm(myCPM, var_set, keep.exprs, 
   thresh, keepcpm, keepn, keeprow,
   medlib,mlib,col_sum)

Exploratory analyses

Principal Component Analysis

As well as how they behave in a PCA:

set.seed(123456789)
#### Optional
## Reducing number of cases to reduce computational cost
## If you want to reduce number of cases changes percent
percent <- 1
pca_samples_ids <- sort(sample(x =  1:length(colnames(full_exprs)),
                      size = length(colnames(full_exprs))*percent,
                      replace = FALSE))
pca_group <- group_f[pca_samples_ids]

#Proportion in the full and in the reduced datasets of PCA
prop.table(table(pca_group))
## pca_group
##     colon       gbm       lgg 
## 0.4256536 0.1421569 0.4321895
prop.table(table(group_f))
## group_f
##     colon       gbm       lgg 
## 0.4256536 0.1421569 0.4321895
#PCA function prcomp CENTERING but NOT scaling
pca_f <- prcomp(t(full_exprs[,pca_samples_ids]), 
                center = TRUE, 
                scale = FALSE)
#PCA plot
fig_pca.a1 <- fviz_pca_ind(pca_f,
                    geom = "point",
                    col.ind = pca_group
                    )
fig_pca.a1

#deleting variables
rm(pca_f)

Normalization

Normalization is done with edgeR and then voom transformation and calculation of variance weights.

countstovoom <- function(data, group, use.method = "TMM", make.plot = TRUE){
  #DGE built object
  dge <- DGEList(data)
  
  #calculations of norm factors based on library size
  normfactor <- calcNormFactors(dge,method = use.method)

  #model design based on dataset groups
  design_mod <- model.matrix(~ 0 + group)
  colnames(design_mod) <- levels(group)

  #voom function object
  return(voom(normfactor,design_mod, plot = make.plot))
  
  #deleting variables
  rm(dge,normfactor)
}

#apply voom fn
v.F <- countstovoom(full_exprs, group_f)

save(v.F, file="data/v.F.RData")

Exploratory analysis after Normalization

Principal components analysis

How they behave after data normalization in the PCA?

#pca function 
pcanorm_f <- prcomp(t(v.F$E[,pca_samples_ids]), 
                    center = TRUE, 
                    scale = FALSE)

#pca plot
fig_pcanorm.a1 <- fviz_pca_ind(pcanorm_f,
                    geom = "point",
                    col.ind = pca_group)
fig_pcanorm.a1

#deleting variables
rm(pcanorm_f, pca_samples_ids, pca_group)

Linear Model

In this step, lmFit functions built a model using voom data and with makeConstrasts of limma groups comparisons are specified.

#function to built linear model
linmod <- function(voomobj, group, contrast.mod, make.plot = TRUE){
  
  #model design based on dataset groups
  design <- model.matrix(~ 0 + group)
  colnames(design) <- levels(group)
  
  #lmFit function limma
  lm <- lmFit(voomobj,design)
  
  #makeContrasts function
  contmat <- makeContrasts(contrasts = contrast.mod,
                           levels = design)

  #contrasts.fit function based on linear model
  fit.cont <- contrasts.fit(lm,contmat)

  #bayesian transformation
  fit.cont <- eBayes(fit.cont)

  #normalized fitlinear plot
  if (make.plot == TRUE){
    plotSA(fit.cont, main = "voom: Mean-variance trend")
  }
  
  return(fit.cont)
}

#Building linear model 
fit.cont.F <- linmod(v.F,group_f,
                   contrast.mod = c("gbm-colon", "lgg-colon"))

save(fit.cont.F, file="data/fit.cont.F.RData")

DE analysis 1

DEA is performed based on TREAT function and topTREAT (McCarthy and Smyth 2009). The function treat of limma library allow from the fit.cont object and a “log fold change” (logFC) recalculate the moderate t-statistics and p-values. This procedure is much more precise to control FDR than discard genes based on p-values and logFC.

Annotation was done with the org.Hs.eg.db database using ENTREZID, SYMBOL and GENENAME features.

#DEG based on treat function procedure
fit.treat.F <- treat(fit.cont.F,lfc=2)
res.treat.F <- decideTests(fit.treat.F)

#Annotation for fit.treat object
ann <- AnnotationDbi::select(org.Hs.eg.db,
                             keys=rownames(fit.treat.F),
                             keytype= "ENSEMBL",
                             columns=c("ENTREZID","SYMBOL","GENENAME"),
                             multiVals="first")

#removing duplicated in the samples
ann <- ann[!duplicated(ann$ENSEMBL),]

#adding gen labels to fit.treat_genes
fit.treat.F$genes <- ann

#GBM vs colon
topGBM <- topTreat(fit.treat.F,
                   coef= "gbm-colon",
                   sort.by= "logFC",
                   number = sum(summary(
                       res.treat.F)[,"gbm-colon"]))
rownames(topGBM) <- NULL
head(topGBM, 10)
##            ENSEMBL ENTREZID  SYMBOL
## 1  ENSG00000105388     1048 CEACAM5
## 2  ENSG00000131095     2670    GFAP
## 3  ENSG00000086548     4680 CEACAM6
## 4  ENSG00000171885      361    AQP4
## 5  ENSG00000106541    10551    AGR2
## 6  ENSG00000165556     1045    CDX2
## 7  ENSG00000198788     4583    MUC2
## 8  ENSG00000147588     5375    PMP2
## 9  ENSG00000101076     3172   HNF4A
## 10 ENSG00000233041   644844   PHGR1
##                                                           GENENAME     logFC
## 1                                     CEA cell adhesion molecule 5 -17.14680
## 2                                  glial fibrillary acidic protein  15.55718
## 3                                     CEA cell adhesion molecule 6 -15.08564
## 4                                                      aquaporin 4  14.65190
## 5  anterior gradient 2, protein disulphide isomerase family member -14.43311
## 6                                           caudal type homeobox 2 -13.51217
## 7                            mucin 2, oligomeric mucus/gel-forming -13.44111
## 8                                      peripheral myelin protein 2  13.37128
## 9                                hepatocyte nuclear factor 4 alpha -13.21911
## 10                           proline, histidine and glycine rich 1 -12.96114
##        AveExpr         t       P.Value     adj.P.Val
## 1   1.62716264 -63.78436  0.000000e+00  0.000000e+00
## 2   6.93122066  76.41363  0.000000e+00  0.000000e+00
## 3   1.20693450 -45.19769 1.308082e-263 1.454657e-261
## 4   3.58958254  61.77911  0.000000e+00  0.000000e+00
## 5   1.23101694 -45.32857 1.422799e-264 1.608310e-262
## 6   0.02344595 -46.78618 2.965886e-275 3.653723e-273
## 7   0.29562304 -19.45448  5.594337e-74  8.174169e-73
## 8   3.80555864  63.88716  0.000000e+00  0.000000e+00
## 9   0.91760624 -58.38367  0.000000e+00  0.000000e+00
## 10 -0.58206078 -31.48332 3.251687e-160 1.181925e-158
#LGG vs colon
topLGG <- topTreat(fit.treat.F,
                   coef= "lgg-colon",
                   sort.by= "logFC",
                   number = sum(summary(
                       res.treat.F)[,"lgg-colon"]))
rownames(topLGG) <- NULL
head(topLGG, 10)
##            ENSEMBL ENTREZID  SYMBOL
## 1  ENSG00000105388     1048 CEACAM5
## 2  ENSG00000131095     2670    GFAP
## 3  ENSG00000086548     4680 CEACAM6
## 4  ENSG00000171885      361    AQP4
## 5  ENSG00000106541    10551    AGR2
## 6  ENSG00000147588     5375    PMP2
## 7  ENSG00000198788     4583    MUC2
## 8  ENSG00000130287     1463    NCAN
## 9  ENSG00000165556     1045    CDX2
## 10 ENSG00000170421     3856    KRT8
##                                                           GENENAME     logFC
## 1                                     CEA cell adhesion molecule 5 -17.15147
## 2                                  glial fibrillary acidic protein  15.94757
## 3                                     CEA cell adhesion molecule 6 -15.26441
## 4                                                      aquaporin 4  14.42649
## 5  anterior gradient 2, protein disulphide isomerase family member -14.23910
## 6                                      peripheral myelin protein 2  13.86311
## 7                            mucin 2, oligomeric mucus/gel-forming -13.84622
## 8                                                         neurocan  13.50158
## 9                                           caudal type homeobox 2 -13.46898
## 10                                                       keratin 8 -13.39811
##       AveExpr          t       P.Value     adj.P.Val
## 1  1.62716264 -109.17664  0.000000e+00  0.000000e+00
## 2  6.93122066   86.98659  0.000000e+00  0.000000e+00
## 3  1.20693450  -78.14517  0.000000e+00  0.000000e+00
## 4  3.58958254   64.97898  0.000000e+00  0.000000e+00
## 5  1.23101694  -78.49547  0.000000e+00  0.000000e+00
## 6  3.80555864   71.72526  0.000000e+00  0.000000e+00
## 7  0.29562304  -33.91903 1.062875e-178 1.593771e-177
## 8  3.27127162   63.24119  0.000000e+00  0.000000e+00
## 9  0.02344595  -79.68974  0.000000e+00  0.000000e+00
## 10 4.05187462 -114.67706  0.000000e+00  0.000000e+00
#savedata
dir.create(path = "DEAsets")
## Warning in dir.create(path = "DEAsets"): 'DEAsets' already exists
writexl::write_xlsx(topGBM, path = "DEAsets/topGBM.xlsx")
writexl::write_xlsx(topLGG, path = "DEAsets/topLGG.xlsx")
save(topGBM,file = "data/topGBM.RData")
save(topLGG, file = "data/topLGG.RData")

#Sum up of all the DEG for comparisons.
summary(res.treat.F)
##        gbm-colon lgg-colon
## Down        1788      2567
## NotSig     15736     14441
## Up          3049      3565
#delenting variables
rm(ann, fit.cont.F)

DE genes plots

MD plot

Mean-difference plots as a results of the DEA.

par(mfrow=c(1,2))
#MD gbm vs colon
md.dea1 <- plotMD(fit.treat.F,coef=1,
       status=res.treat.F[,"gbm-colon"], 
       values=c(-1,1),
       main = "GBM vs colon",
       legend = FALSE,
       cex = 0.1)
abline(h=0,col="grey")

#MD lgg vs colon
plotMD(fit.treat.F,coef=2,
       status=res.treat.F[,"lgg-colon"], 
       values=c(-1,1),
       main = "LGG vs colon",
       legend = FALSE,
       cex = 0.1)
abline(h=0,col="grey")

Gene sets of DEA1

This chunk consiste on create gene sets for functional analysis afterwards.

p.value <- .05
log.FC <- 2
IDgene <- c("ENTREZID", "ENSEMBL","SYMBOL")
parameter <- c("logFC", "adj.P.Val")

##GBM genesets
#universe geneset
gbm.all.genelist <- topGBM[,c(IDgene,parameter)]
gbm.all.gene <- gbm.all.genelist[,"logFC"]
names(gbm.all.gene) <- as.character(gbm.all.genelist[,"ENTREZID"])
gbm.all.gene <- sort(gbm.all.gene, decreasing = TRUE)

#up geneset
gbm.up.genelist <- topGBM[topGBM$adj.P.Val < p.value & topGBM$logFC > log.FC,
                      c(IDgene,parameter)]
gbm.up.gene <- gbm.up.genelist[,"logFC"]
names(gbm.up.gene) <- as.character(gbm.up.genelist[,"ENTREZID"])
gbm.up.gene <- sort(gbm.up.gene, decreasing = TRUE)
#down geneset
gbm.dn.genelist <- topGBM[topGBM$adj.P.Val < p.value & topGBM$logFC < log.FC,
                      c(IDgene,parameter)]
gbm.dn.gene <- gbm.dn.genelist[,"logFC"]
names(gbm.dn.gene) <- as.character(gbm.dn.genelist[,"ENTREZID"])
gbm.dn.gene <- sort(gbm.dn.gene, decreasing = TRUE)

##LGG genesets
#universe geneset
lgg.all.genelist <- topLGG[,c(IDgene,parameter)]
lgg.all.gene <- lgg.all.genelist[,"logFC"]
names(lgg.all.gene) <- as.character(lgg.all.genelist[,"ENTREZID"])
lgg.all.gene <- sort(lgg.all.gene, decreasing = TRUE)

#up geneset
lgg.up.genelist <- topLGG[topLGG$adj.P.Val < p.value & topLGG$logFC > log.FC,
                      c(IDgene,parameter)]
lgg.up.gene <- lgg.up.genelist[,"logFC"]
names(lgg.up.gene) <- as.character(lgg.up.genelist[,"ENTREZID"])
lgg.up.gene <- sort(lgg.up.gene, decreasing = TRUE)

#down geneset
lgg.dn.genelist <- topLGG[topLGG$adj.P.Val < p.value & topLGG$logFC < log.FC,
                      c(IDgene,parameter)]
lgg.dn.gene <- lgg.dn.genelist[,"logFC"]
names(lgg.dn.gene) <- as.character(lgg.dn.genelist[,"ENTREZID"])
lgg.dn.gene <- sort(lgg.dn.gene, decreasing = TRUE)


##function to identify tables after Functional analysis
id.table <- function(tableid, size = 20){
  var.name <<- deparse(substitute(tableid))
  table.name <<- head(tableid, size)
  table.name$table.id <<- rep(var.name,size)  #add a table id
  classif <<- strsplit2(table.name$table.id, split = "\\.")
  colnames(classif) <<- c("tool","cancer","regulation_proccess")
  table.name <- cbind(table.name, classif)
  return(table.name)
}

Venn Diagram

Venn diagrams are showed as a result of DEA. Genes up and down-regulated are represented for each subtype of glioma.

#list for venn diagram
venn_list <- list(gbm.up = gbm.up.genelist$ENSEMBL,
                  gbm.down = gbm.dn.genelist$ENSEMBL,
                  lgg.up = lgg.up.genelist$ENSEMBL,
                  lgg.down = lgg.dn.genelist$ENSEMBL)

v.table <- venn(data = venn_list,
                universe = gbm.all.genelist$ENSEMBL,
                small=0.7, showSetLogicLabel=FALSE,
                show.plot=FALSE, intersections=TRUE,
                names = c("GBM vs colon up",
                          "GBM vs colon down",
                          "LGG vs colon up",
                          "LGG vs colon down")
)
isect <- attr(v.table, "intersection")

#venn diagram plot
par(mfrow=c(1,1))
ggvenn(venn_list, 
       fill_color = brewer.pal(8, "Dark2"),
       stroke_size = 0.2, set_name_size = 4.5)

Specific genes as potential biomarkers of glioma

In this chunk, it is shown genes that are exclusive for GBM vs colon, and LGG vs colon.

#specific genes for up and regulation in GBM excluding common genes with lgg vs colon comparison
gbm.specific <- c(isect[["GBM vs colon up"]],isect[["GBM vs colon down"]])
length(gbm.specific)
## [1] 529
gbm.specific.table <- topGBM[topGBM$ENSEMBL %in% gbm.specific,]
head(gbm.specific.table)
##              ENSEMBL  ENTREZID       SYMBOL                     GENENAME
## 558  ENSG00000133048      1116       CHI3L1           chitinase 3 like 1
## 660  ENSG00000183072      1482       NKX2-5               NK2 homeobox 5
## 717  ENSG00000163064      2019          EN1         engrailed homeobox 1
## 783  ENSG00000171540     23440          OTP          orthopedia homeobox
## 828  ENSG00000229108      <NA>         <NA>                         <NA>
## 1168 ENSG00000258754 105369203 LOC105369203 uncharacterized LOC105369203
##         logFC    AveExpr        t       P.Value     adj.P.Val
## 558  6.619692  5.2050587 21.49606  1.564206e-87  2.670573e-86
## 660  6.348811 -3.4069746 24.64851 1.410261e-109 3.136574e-108
## 717  6.225122 -2.6774457 20.35025  7.623488e-80  1.182790e-78
## 783  6.076074 -3.7766760 24.95124 9.436141e-112 2.171473e-110
## 828  5.949584 -3.4679585 22.41378  7.972513e-94  1.468384e-92
## 1168 5.232189 -0.2037976 20.58921  1.974177e-81  3.124212e-80
#specific genes for up and down regulation in LGG excluding common genes with gbm vs colon comparison
lgg.specific <- c(isect[["LGG vs colon up"]],isect[["LGG vs colon down"]])
length(lgg.specific)
## [1] 1824
lgg.specific.table <- topLGG[topLGG$ENSEMBL %in% lgg.specific,]
head(lgg.specific.table)
##             ENSEMBL ENTREZID SYMBOL                                  GENENAME
## 575 ENSG00000119973     2834  PRLHR      prolactin releasing hormone receptor
## 621 ENSG00000133110    10631  POSTN                                 periostin
## 829 ENSG00000120093     3213  HOXB3                               homeobox B3
## 960 ENSG00000122592     3204  HOXA7                               homeobox A7
## 965 ENSG00000106004     3202  HOXA5                               homeobox A5
## 985 ENSG00000108846     8714  ABCC3 ATP binding cassette subfamily C member 3
##         logFC     AveExpr         t       P.Value     adj.P.Val
## 575  7.608142 -1.47329962  23.79561 1.685278e-103 1.394099e-102
## 621 -7.472269  3.32901884 -28.56760 2.709506e-138 2.958740e-137
## 829 -6.836583  1.72891900 -35.94475 4.140025e-194 7.044891e-193
## 960 -6.501572 -0.75349270 -27.66768 1.321081e-131 1.364387e-130
## 965 -6.492158 -0.06435987 -29.19162 5.891983e-143 6.697003e-142
## 985 -6.449376  4.26555037 -38.61767 2.126249e-214 4.284360e-213

Functional analysis DEA1

rWikipatways functional analysis

Analysis from rwikipathways (Slenter et al. 2018).

clusterProfiler provides enricher function for hypergeometric test and GSEA function for gene set enrichment analysis that are designed to accept user defined annotation. First we are gonna update information for Wikipathways and download the data from database.

#Download pathways from homo sapiens to localfile
wp.hs.gmt<- downloadPathwayArchive(organism="Homo sapiens",
                       format="gmt")
wp2gene <- readPathwayGMT(wp.hs.gmt)

#Establish ID for wikipathways database
wpid2gene <- wp2gene %>% dplyr::select(wpid,gene) #TERM2GENE
wpid2name <- wp2gene %>% dplyr::select(wpid,name) #TERM2NAME
ORA analysis just needs a list of ENTREZ ids.
### GBM 
#ORA pathway up
ewp.gbm.up <- enricher(gene = names(gbm.up.gene),
                       universe = names(gbm.all.gene),
                       pAdjustMethod = "BH",
                       pvalueCutoff = .05,
                       TERM2GENE = wpid2gene,
                       TERM2NAME = wpid2name)
ewp.gbm.up <- DOSE::setReadable(ewp.gbm.up, org.Hs.eg.db, keyType = "ENTREZID")
head(ewp.gbm.up)
##            ID
## WP4159 WP4159
## WP2267 WP2267
## WP4875 WP4875
## WP4304 WP4304
## WP536   WP536
## WP455   WP455
##                                                                                    Description
## WP4159                                                                 GABA receptor Signaling
## WP2267                                                                Synaptic Vesicle Pathway
## WP4875                                             Disruption of postsynaptic signaling by CNV
## WP4304 Oligodendrocyte specification and differentiation, leading to myelin components for CNS
## WP536                                                   Calcium Regulation in the Cardiac Cell
## WP455                                                            GPCRs, Class A Rhodopsin-like
##        GeneRatio  BgRatio       pvalue     p.adjust       qvalue
## WP4159    17/802  30/6511 7.395508e-09 3.076532e-06 2.950419e-06
## WP2267    21/802  50/6511 1.245259e-07 2.590139e-05 2.483964e-05
## WP4875    16/802  33/6511 3.696498e-07 5.125811e-05 4.915694e-05
## WP4304    14/802  28/6511 1.256312e-06 1.306564e-04 1.253006e-04
## WP536     38/802 145/6511 3.230652e-06 2.451948e-04 2.351438e-04
## WP455     39/802 151/6511 3.536463e-06 2.451948e-04 2.351438e-04
##                                                                                                                                                                                                                                                   geneID
## WP4159                                                                                                                                 SLC6A11/GABBR2/GABRA1/GAD2/SLC6A1/GABRG1/GABRA5/GABRQ/GABRG2/SLC32A1/GABRA3/GABRB3/GABRG3/GAD1/ABAT/GABRB1/GABBR1
## WP2267                                                                                                           ATP1A2/SLC1A3/SNAP25/SLC17A7/SLC32A1/SYN2/SLC17A6/RIMS1/STX1B/UNC13A/SYP/UNC13C/CACNA1A/SYN1/CPLX2/SLC17A8/CACNA1B/DNM3/SYT1/RAB3A/DNM1
## WP4875                                                                                                                                                NLGN1/RPH3A/NRXN1/CAMK2B/ARC/NLGN3/CAMK2A/DLGAP1/NLGN4X/GRIN2A/NRXN2/DLG2/SHANK1/GRM1/NLGN2/GRIN2C
## WP4304                                                                                                                                                                            OLIG1/OLIG2/PLP1/MOG/ASCL1/MAG/NKX2-2/OMG/SOX8/SOX5/MYT1/SOX6/FGF2/MBP
## WP536               ADCY8/ATP1B2/ATP2B2/CAMK2B/CAMK2A/ADCY2/CASQ1/KCNB1/RGS20/RGS7/GNAO1/SLC8A3/RGS6/ATP2B3/GNG7/PKIA/GNG3/CACNA1A/RYR1/GJA1/ADRA1A/CACNA1E/ADCY1/RYR3/GNAZ/ADRA1D/ADRA1B/GNG2/PRKD1/ATP1A4/RGS17/GJD2/KCNJ5/CACNA1B/RGS4/GNB4/GJC1/GNG8
## WP455  NTSR2/CNR1/GALR1/P2RY12/GPR12/GPR37L1/CX3CR1/MCHR1/ADORA1/GPR37/GPR173/GPR17/HRH3/NPY2R/GPR85/EDNRB/CCKBR/ADRA1A/HTR5A/OPRL1/GPR27/GPR75/LPAR4/GPR34/ADRA1D/FPR1/ADRA1B/OR7A5/OPRK1/OXTR/APLNR/GPR19/GPR22/GPR45/CYSLTR2/SSTR2/GPER1/CCR10/P2RY13
##        Count
## WP4159    17
## WP2267    21
## WP4875    16
## WP4304    14
## WP536     38
## WP455     39
p1<-barplot(ewp.gbm.up, 
            showCategory = 7, 
            font.size = 7,
            label_format = 15)+
  ggtitle("GBM vs Colon DEG up")
ewp.gbm.up <- id.table(ewp.gbm.up)



#ORA pathway dn
ewp.gbm.dn <- enricher(gene = names(gbm.dn.gene),
                       universe = names(gbm.all.gene),
                       pAdjustMethod = "BH",
                       pvalueCutoff = .05,
                       TERM2GENE = wpid2gene,
                       TERM2NAME = wpid2name)
ewp.gbm.dn <- DOSE::setReadable(ewp.gbm.dn, org.Hs.eg.db, keyType = "ENTREZID")
head(ewp.gbm.dn)
##            ID                                  Description GeneRatio  BgRatio
## WP2877 WP2877                   Vitamin D Receptor Pathway    36/583 155/6511
## WP702   WP702 Metapathway biotransformation Phase I and II    33/583 145/6511
## WP698   WP698                              Glucuronidation     8/583  15/6511
## WP1604 WP1604              Codeine and Morphine Metabolism     6/583  11/6511
## WP691   WP691                         Tamoxifen metabolism     7/583  16/6511
## WP2876 WP2876                  Pregnane X receptor pathway     9/583  26/6511
##              pvalue     p.adjust       qvalue
## WP2877 5.592415e-08 0.0000233763 2.166325e-05
## WP702  3.362756e-07 0.0000702816 6.513127e-05
## WP698  1.437237e-05 0.0020025502 1.855801e-03
## WP1604 1.568282e-04 0.0163885462 1.518757e-02
## WP691  2.481094e-04 0.0180812166 1.675620e-02
## WP2876 2.699387e-04 0.0180812166 1.675620e-02
##                                                                                                                                                                                                                                            geneID
## WP2877 TPM1/EPHB4/CTLA4/LRP5/PTGER4/SOSTDC1/MYC/KRTAP5-1/SPRR1B/SERPINB1/SULT2A1/KNG1/IRF4/CASP5/KLF4/BDKRB1/CRACR2A/SULT1C2/CRACR2B/CYP2C9/CYP3A5/KRTAP4-1/ALPG/TNFSF11/VDR/CYP2S1/ATP2C2/ALPI/NOX1/CST1/HNF1A/CEACAM1/HSD17B2/CLDN2/CYP2B6/CDX2
## WP702  FMO5/CHST5/CYP39A1/GLYATL1/AKR1C3/SULT2A1/CYP4F3/GSTO2/NAT2/SULT1C2/UGT1A1/GSTA1/AKR1C4/AKR7A3/CYP2C9/GAL3ST2/CYP3A5/SULT2B1/SULT1B1/CYP4F12/AKR1B10/CYP4F2/CYP2S1/UGT1A6/UGT2B7/CYP2C18/UGT2B15/UGT2B17/CYP2W1/UGT1A10/UGT2A3/CYP2B6/GPX2
## WP698                                                                                                                                                                                  UGT1A1/UGT1A8/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/UGT2A3
## WP1604                                                                                                                                                                                                  ABCC2/UGT1A1/UGT1A8/UGT1A6/UGT2B7/UGT1A10
## WP691                                                                                                                                                                                         SULT2A1/CYP2C9/CYP3A5/UGT1A8/UGT2B7/UGT2B15/UGT1A10
## WP2876                                                                                                                                                                             ABCC2/SULT2A1/UGT1A1/CYP2C9/CYP3A5/CYP4F12/UGT1A6/NR1I2/CYP2B6
##        Count
## WP2877    36
## WP702     33
## WP698      8
## WP1604     6
## WP691      7
## WP2876     9
p2<-barplot(ewp.gbm.dn,            
            showCategory = 7, 
            font.size = 7,
            label_format = 15)+
  ggtitle("GBM vs Colon DEG down")
ewp.gbm.dn <- id.table(ewp.gbm.dn, size = 12)

### LGG 
#ORA pathway up
ewp.lgg.up <- enricher(gene = names(lgg.up.gene),
                       universe = names(lgg.all.gene),
                       pAdjustMethod = "BH",
                       pvalueCutoff = .05,
                       TERM2GENE = wpid2gene,
                       TERM2NAME = wpid2name)
ewp.lgg.up <- DOSE::setReadable(ewp.lgg.up, org.Hs.eg.db, keyType = "ENTREZID")
head(ewp.lgg.up)
##            ID                                 Description GeneRatio  BgRatio
## WP536   WP536      Calcium Regulation in the Cardiac Cell    54/946 145/6511
## WP4159 WP4159                     GABA receptor Signaling    20/946  30/6511
## WP455   WP455               GPCRs, Class A Rhodopsin-like    51/946 151/6511
## WP2267 WP2267                    Synaptic Vesicle Pathway    25/946  50/6511
## WP4875 WP4875 Disruption of postsynaptic signaling by CNV    18/946  33/6511
## WP117   WP117                                GPCRs, Other    24/946  60/6511
##              pvalue     p.adjust       qvalue
## WP536  6.504314e-12 2.816368e-09 2.581186e-09
## WP4159 1.032758e-10 2.235920e-08 2.049209e-08
## WP455  1.477912e-09 2.133120e-07 1.954993e-07
## WP2267 2.801075e-09 3.032163e-07 2.778961e-07
## WP4875 8.516617e-08 7.375390e-06 6.759504e-06
## WP117  1.132797e-06 8.175017e-05 7.492358e-05
##                                                                                                                                                                                                                                                                                                                                    geneID
## WP536  ADCY8/ATP1B2/ATP2B2/KCNB1/CAMK2B/ADCY2/SLC8A3/CAMK2A/ATP2B3/RGS7/GNAO1/CASQ1/ADRA1A/CACNA1A/RYR1/RGS20/CACNA1E/GNG7/CACNA1B/PKIA/GNG3/GJD2/ATP1A4/RGS6/GNAZ/ADCY1/GJB6/RGS9/GJA1/RGS11/ADCY5/ADRA1B/PRKCB/CHRM1/GNG2/CHRM4/PRKD1/RGS4/PRKCG/RYR3/GNG8/RGS17/FXYD2/KCNJ5/CAMK4/KCNJ3/GNB4/ADRB2/GNG4/PRKCA/GNB3/ADRA1D/ADRB1/SLC8A1
## WP4159                                                                                                                                                                                              GABBR2/GABRG1/SLC6A11/GABRA1/SLC6A1/GABRG2/GABRA3/GAD2/GABRA5/GABRB3/SLC32A1/GABRQ/GAD1/GABBR1/GABRG3/GABRB1/ABAT/GABRB2/GABRD/GABRA4
## WP455           NTSR2/PRLHR/HRH3/P2RY12/GPR17/GPR37L1/GALR1/CNR1/GPR12/ADRA1A/CX3CR1/GPR27/GPR173/GPR37/CCKBR/HTR5A/HTR2C/GPR85/HTR1A/ADORA1/EDNRB/SSTR2/MCHR1/GPR75/LPAR4/GPR45/HTR2A/OPRK1/OPRL1/GPR22/ADRA1B/CHRM1/CHRM4/GPR19/MAS1/OR7A5/MC4R/GPR34/HTR1E/GPR6/NPY2R/GPR83/P2RY13/ADRB2/GPER1/ADRA1D/ADRB1/OPRD1/CYSLTR2/APLNR/GPR161
## WP2267                                                                                                                                                                    ATP1A2/SNAP25/SLC1A3/SLC17A7/UNC13A/SLC32A1/RIMS1/UNC13C/SYN2/STX1B/CPLX2/CACNA1A/SYP/SLC17A6/CACNA1B/SYN1/DNM3/SLC17A8/SYT1/RAB3A/VAMP2/DNM1/SYN3/CPLX1/STXBP1
## WP4875                                                                                                                                                                                                                   NRXN1/NLGN1/RPH3A/DLGAP1/CAMK2B/NLGN3/CAMK2A/GRIN2A/NRXN2/DLG2/ARC/SHANK1/GRM1/NLGN4X/GRIN2C/NLGN2/GRIN1/SYNGAP1
## WP117                                                                                                                                                                               GPR17/ADGRV1/ADGRL3/CNR1/GPR162/GRM1/GPR62/CCKBR/GPR88/SSTR2/GHRHR/HTR2A/VN1R1/GPR61/TAAR3P/CELSR2/S1PR1/MCHR2/GPR83/P2RY13/ADRB2/ADRA1D/RXFP1/GPR135
##        Count
## WP536     54
## WP4159    20
## WP455     51
## WP2267    25
## WP4875    18
## WP117     24
p3<-barplot(ewp.lgg.up,             
            showCategory = 7, 
            font.size = 7,
            label_format = 15) +
  ggtitle("LGG vs Colon DEG up")
ewp.lgg.up <- id.table(ewp.lgg.up)

#ORA pathway dn
ewp.lgg.dn <- enricher(gene = names(lgg.dn.gene),
                       universe = names(lgg.all.gene),
                       pAdjustMethod = "BH",
                       pvalueCutoff = .05,
                       TERM2GENE = wpid2gene,
                       TERM2NAME = wpid2name)
ewp.lgg.dn <- DOSE::setReadable(ewp.lgg.dn, org.Hs.eg.db, keyType = "ENTREZID")
head(ewp.lgg.dn)
##            ID                                               Description
## WP2877 WP2877                                Vitamin D Receptor Pathway
## WP453   WP453                             Inflammatory Response Pathway
## WP2911 WP2911               miRNA targets in ECM and membrane receptors
## WP129   WP129                                 Matrix Metalloproteinases
## WP4884 WP4884 Pathogenesis of SARS-CoV-2 Mediated by nsp9-nsp10 Complex
## WP3624 WP3624                                             Lung fibrosis
##        GeneRatio  BgRatio       pvalue     p.adjust       qvalue
## WP2877    52/931 155/6511 7.443735e-10 3.602768e-07 3.220395e-07
## WP453     15/931  25/6511 1.539323e-07 3.725161e-05 3.329798e-05
## WP2911    13/931  24/6511 5.193973e-06 8.379610e-04 7.490256e-04
## WP129     12/931  24/6511 3.497021e-05 4.231395e-03 3.782304e-03
## WP4884    10/931  18/6511 5.000963e-05 4.840933e-03 4.327149e-03
## WP3624    19/931  56/6511 1.667764e-04 1.253186e-02 1.120181e-02
##                                                                                                                                                                                                                                                                                                                                                    geneID
## WP2877 LGALS9/THBD/MX2/TPM1/STEAP4/MYC/SOSTDC1/KRTAP5-1/TREM1/CYP27B1/CST6/TNFAIP3/SPRR1B/SALL4/S100A9/IRF4/KLF4/CTLA4/EPHB4/KRT16/KNG1/SULT2A1/S100A6/TNFRSF11B/ADGRE5/PTGER4/CRACR2A/SERPINB1/G0S2/S100A4/CRACR2B/SULT1C2/CYP2C9/CA9/CYP3A5/BDKRB1/CASP5/ATP2C2/ALPG/KRTAP4-1/NOX1/ALPI/TNFSF11/CYP2S1/CST1/VDR/HNF1A/CLDN2/HSD17B2/CEACAM1/CYP2B6/CDX2
## WP453                                                                                                                                                                                                                                                            ZAP70/IL4R/LAMB1/CD28/CD80/CD40LG/IL2RB/LCK/IL2RA/COL1A2/THBS1/IL2RG/COL3A1/COL1A1/LAMC2
## WP2911                                                                                                                                                                                                                                                            ITGA1/ITGA11/COL4A2/COL4A1/COL5A2/COL6A2/COL1A2/THBS1/COL5A1/ITGB6/MIR429/COL3A1/COL6A3
## WP129                                                                                                                                                                                                                                                                                  MMP2/MMP14/MMP19/TIMP1/MMP13/MMP10/MMP9/MMP11/MMP7/MMP3/MMP1/MMP12
## WP4884                                                                                                                                                                                                                                                                                                  ZAP70/CD247/CD8A/IL6/CD8B/CD3E/CD3G/CD2/LCK/CXCL8
## WP3624                                                                                                                                                                                                                                            MMP2/CXCL2/IL6/CCR2/CALCA/CCL5/PLAU/CSF3/TIMP1/SERPINA1/TERT/FGF7/CSF2/GREM1/CXCL8/MMP9/DSP/CCL11/MUC5B
##        Count
## WP2877    52
## WP453     15
## WP2911    13
## WP129     12
## WP4884    10
## WP3624    19
p4<-barplot(ewp.lgg.dn,            
            showCategory = 7, 
            font.size = 7,
            label_format = 15)+
  ggtitle("LGG vs Colon DEG down")
ewp.lgg.dn <- id.table(ewp.lgg.dn)

#plot grid for results
pt <- plot_grid(p1,p2,p3,p4, ncol = 2)

## to collect all functional analysis results
keep.colums.enricher <- c("ID","Description","pvalue","p.adjust","Count","geneID",
                          "table.id","tool","cancer","regulation_proccess")
fa.DEA1 <- rbind(ewp.gbm.up[,keep.colums.enricher], 
                  ewp.gbm.dn[,keep.colums.enricher], 
                  ewp.lgg.up[,keep.colums.enricher], 
                  ewp.lgg.dn[,keep.colums.enricher])
GSEA analysis with wikipathways
set.seed(1234567)
## GBM GSEA
gwp.gbm <- GSEA(geneList = c(gbm.up.gene,
                             gbm.dn.gene),
                pAdjustMethod = "BH",
                pvalueCutoff = 0.05,
                TERM2GENE = wpid2gene,
                TERM2NAME = wpid2name,
                verbose = FALSE
                   )
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
gwp.gbm <- setReadable(gwp.gbm, 'org.Hs.eg.db', 'ENTREZID')

#network plot gbm gsea
cnetplot(gwp.gbm, 
         foldChange=c(gbm.up.gene,
                      gbm.dn.gene),
         repel = TRUE,
         showCategory = 15,
         colorEdge = FALSE,
         circular = FALSE,
         cex_category = 0.6,
         cex_gene = 0.4,
         cex_label_category = 0.6,
         cex_label_gene = 0.3,
         main = "GBM vs colon")

#gbm gsea wikipathways up
gwp.gbm.up <- gwp.gbm[which(gwp.gbm$NES > 1),]
head(gwp.gbm.up)
##            ID
## WP4875 WP4875
## WP706   WP706
## WP4312 WP4312
## WP4304 WP4304
## WP2380 WP2380
## WP2431 WP2431
##                                                                                    Description
## WP4875                                             Disruption of postsynaptic signaling by CNV
## WP706                              Sudden Infant Death Syndrome (SIDS) Susceptibility Pathways
## WP4312                                                             Rett syndrome causing genes
## WP4304 Oligodendrocyte specification and differentiation, leading to myelin components for CNS
## WP2380                              Brain-derived neurotrophic factor (BDNF) signaling pathway
## WP2431                                                                      Spinal Cord Injury
##        setSize enrichmentScore      NES       pvalue     p.adjust      qvalues
## WP4875      16       0.6859665 2.596479 8.819445e-07 6.961109e-05 5.603370e-05
## WP706       43       0.4927865 2.603433 1.023693e-06 6.961109e-05 5.603370e-05
## WP4312      14       0.7106280 2.554302 2.216988e-06 1.005035e-04 8.090062e-05
## WP4304      17       0.6599752 2.532060 4.408177e-06 1.498780e-04 1.206449e-04
## WP2380      31       0.5135583 2.420796 8.020059e-06 2.181456e-04 1.755971e-04
## WP2431      34       0.4896383 2.413056 1.787410e-05 3.307032e-04 2.662007e-04
##        rank                   leading_edge
## WP4875 1205 tags=88%, list=25%, signal=66%
## WP706   806 tags=47%, list=17%, signal=39%
## WP4312  665 tags=71%, list=14%, signal=62%
## WP4304  271  tags=53%, list=6%, signal=50%
## WP2380 1427 tags=68%, list=30%, signal=48%
## WP2431  280  tags=29%, list=6%, signal=28%
##                                                                                                                   core_enrichment
## WP4875                                      NLGN1/RPH3A/NRXN1/CAMK2B/ARC/NLGN3/CAMK2A/DLGAP1/NLGN4X/GRIN2A/NRXN2/DLG2/SHANK1/GRM1
## WP706  AQP4/PLP1/ADCYAP1R1/SOX2/POU3F2/ASCL1/SLC1A3/TF/MAP2/SNAP25/NKX2-2/NTRK2/GABRA1/EN1/CHRNA4/SCN3B/CHRNB2/NEUROD1/GCK/ATP1A3
## WP4312                                                            FOXG1/SCN1A/GABBR2/KCNJ10/ACTL6B/SCN2A/HAP1/GABRA3/GNAO1/GRIN2A
## WP4304                                                                             OLIG1/OLIG2/PLP1/MOG/ASCL1/MAG/NKX2-2/OMG/SOX8
## WP2380   GRIA2/GRIA1/GRIA3/CNR1/NTRK3/MAPT/NTRK2/CDH2/NCAM1/CAMK2A/DOK5/SPP1/MAPK10/DOCK3/SHC4/NGFR/GABRB3/KCNN2/LINGO1/SYN1/SHC3
## WP2431                                                                        GFAP/AQP4/PTPRZ1/NCAN/GAP43/MAG/BCAN/PDYN/OMG/SLIT1
gwp.gbm.up <- id.table(gwp.gbm.up, size = 17)

#gbm gsea wikipathways down
gwp.gbm.dn <- gwp.gbm[which(gwp.gbm$NES < -1),]
head(gwp.gbm.dn)
##            ID                                               Description setSize
## WP2882 WP2882                            Nuclear Receptors Meta-Pathway      71
## WP2877 WP2877                                Vitamin D Receptor Pathway      47
## WP4239 WP4239 Epithelial to mesenchymal transition in colorectal cancer      45
## WP43     WP43                              Oxidation by Cytochrome P450      14
## WP702   WP702              Metapathway biotransformation Phase I and II      65
##        enrichmentScore       NES       pvalue     p.adjust      qvalues rank
## WP2882      -0.3792271 -2.348982 2.081931e-05 0.0003307032 0.0002662007  934
## WP2877      -0.4321458 -2.388570 2.616753e-05 0.0003558785 0.0002864656 1458
## WP4239      -0.3826983 -2.078484 5.386476e-04 0.0061046724 0.0049139778 1159
## WP43        -0.5591131 -2.059786 3.348487e-03 0.0239681187 0.0192932225  748
## WP702       -0.3090767 -1.850582 3.581879e-03 0.0243567796 0.0196060765 1064
##                          leading_edge
## WP2882 tags=42%, list=19%, signal=35%
## WP2877 tags=77%, list=30%, signal=54%
## WP4239 tags=49%, list=24%, signal=38%
## WP43   tags=57%, list=15%, signal=48%
## WP702  tags=42%, list=22%, signal=33%
##                                                                                                                                                                                                                                   core_enrichment
## WP2882                                     FGF19/UGT1A1/GSTA1/CES3/SLC39A4/CYP2C9/SLC6A19/CYP3A5/EPB41L4B/CYP4F12/CCL20/KLK15/VDR/SLC6A20/UGT1A6/NR0B2/UGT2B7/ADGRF4/NR1I2/PCK1/SLC6A14/SLC39A5/S100P/FGFBP1/SCNN1A/CYP2B6/SLC5A1/TNS4/FABP1/GPX2
## WP2877 TPM1/EPHB4/CTLA4/LRP5/PTGER4/SOSTDC1/MYC/KRTAP5-1/SPRR1B/SERPINB1/SULT2A1/KNG1/IRF4/CASP5/KLF4/BDKRB1/CRACR2A/SULT1C2/CRACR2B/CYP2C9/CYP3A5/KRTAP4-1/ALPG/TNFSF11/VDR/CYP2S1/ATP2C2/ALPI/NOX1/CST1/HNF1A/CEACAM1/HSD17B2/CLDN2/CYP2B6/CDX2
## WP4239                                                                                                            CLDN16/CLDN14/CLDN23/PKP1/CLDN8/WNT2/GDF15/OCLN/FOXQ1/WNT11/JUP/MAPK13/CLDN1/DSP/PKP2/CDH1/CLDN7/CRB3/CLDN2/CLDN4/CLDN3/TMPRSS4
## WP43                                                                                                                                                                                    CYP2C9/CYP3A5/CYP4F12/CYP4F2/CYP2S1/CYP2C18/CYP2W1/CYP2B6
## WP702                                            CYP4F3/GSTO2/NAT2/SULT1C2/UGT1A1/GSTA1/AKR1C4/AKR7A3/CYP2C9/GAL3ST2/CYP3A5/SULT2B1/SULT1B1/CYP4F12/AKR1B10/CYP4F2/CYP2S1/UGT1A6/UGT2B7/CYP2C18/UGT2B15/UGT2B17/CYP2W1/UGT1A10/UGT2A3/CYP2B6/GPX2
gwp.gbm.dn <- id.table(gwp.gbm.dn, size = 5)



## LGG GSEA
gwp.lgg <- GSEA(geneList = c(lgg.up.gene,
                             lgg.dn.gene),
                pAdjustMethod = "BH",
                pvalueCutoff = 0.05,
                TERM2GENE = wpid2gene,
                TERM2NAME = wpid2name,
                verbose = FALSE
                   )
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
gwp.lgg <- setReadable(gwp.lgg, 'org.Hs.eg.db', 'ENTREZID')

#network plot lgg gsea
cnetplot(gwp.lgg, 
         categorySize="pvalue", 
         foldChange=c(lgg.up.gene,
                      lgg.dn.gene),
         repel = TRUE,
         showCategory = 15,
         colorEdge = FALSE,
         circular = FALSE,
         cex_category = 0.6,
         cex_gene = 0.4,
         cex_label_category = 0.6,
         cex_label_gene = 0.3)

#lgg gsea wikipathways up
gwp.lgg.up <- gwp.lgg[which(gwp.lgg$NES > 1),]
head(gwp.lgg.up)
##            ID                                                 Description
## WP4875 WP4875                 Disruption of postsynaptic signaling by CNV
## WP2267 WP2267                                    Synaptic Vesicle Pathway
## WP4549 WP4549                                         Fragile X Syndrome 
## WP4159 WP4159                                     GABA receptor Signaling
## WP3584 WP3584                          MECP2 and Associated Rett Syndrome
## WP706   WP706 Sudden Infant Death Syndrome (SIDS) Susceptibility Pathways
##        setSize enrichmentScore      NES       pvalue     p.adjust      qvalues
## WP4875      18       0.7662915 2.949898 1.656255e-09 3.693448e-07 2.527968e-07
## WP2267      28       0.6193367 2.759765 7.550492e-08 8.418798e-06 5.762217e-06
## WP4549      38       0.5321823 2.616349 1.218639e-06 9.058548e-05 6.200092e-05
## WP4159      22       0.6317221 2.634482 2.129041e-06 1.126505e-04 7.710328e-05
## WP3584      24       0.6027032 2.578570 2.960503e-06 1.126505e-04 7.710328e-05
## WP706       58       0.4345506 2.378905 6.944828e-06 2.177195e-04 1.490174e-04
##        rank                   leading_edge
## WP4875 1322 tags=94%, list=22%, signal=74%
## WP2267 1103 tags=64%, list=18%, signal=53%
## WP4549 1587 tags=68%, list=26%, signal=51%
## WP4159 1365 tags=77%, list=22%, signal=60%
## WP3584 1725 tags=75%, list=28%, signal=54%
## WP706   523  tags=29%, list=9%, signal=27%
##                                                                                                                                                   core_enrichment
## WP4875                                                   NRXN1/NLGN1/RPH3A/DLGAP1/CAMK2B/NLGN3/CAMK2A/GRIN2A/NRXN2/DLG2/ARC/SHANK1/GRM1/NLGN4X/GRIN2C/NLGN2/GRIN1
## WP2267                                    ATP1A2/SNAP25/SLC1A3/SLC17A7/UNC13A/SLC32A1/RIMS1/UNC13C/SYN2/STX1B/CPLX2/CACNA1A/SYP/SLC17A6/CACNA1B/SYN1/DNM3/SLC17A8
## WP4549 GRIA2/GRIA1/NTRK2/SH3GL3/GABRA1/SLC6A1/GABRG2/KCNC1/CAMK2B/KCND2/CAMK2A/GRIN2A/GRM5/CNR1/ARC/SHANK1/GRM1/MAP1B/PTPN5/GAD1/DLGAP3/GRIN1/ABAT/DLG4/AGAP2/FYN
## WP4159                                          GABBR2/GABRG1/SLC6A11/GABRA1/SLC6A1/GABRG2/GABRA3/GAD2/GABRA5/GABRB3/SLC32A1/GABRQ/GAD1/GABBR1/GABRG3/GABRB1/ABAT
## WP3584                                                    MAG/GRIA1/GRIA4/POU3F2/FOXG1/GRIA3/CAMK2A/MYT1/RBFOX1/GRID1/GAD1/GRIN1/MBP/FGF2/SST/GAMT/OPRK1/ARHGEF26
## WP706                                                  AQP4/PLP1/ADCYAP1R1/ASCL1/SOX2/POU3F2/TF/CHRNA4/MAP2/SNAP25/NTRK2/SLC1A3/GABRA1/NKX2-2/SCN3B/ATP1A3/CHRNB2
gwp.lgg.up <- id.table(gwp.lgg.up)
#lgg gsea wikipathways down
gwp.lgg.dn <- gwp.lgg[which(gwp.lgg$NES < -1),]
head(gwp.lgg.dn)
##            ID
## WP2877 WP2877
## WP2882 WP2882
## WP5039 WP5039
## WP453   WP453
## WP2446 WP2446
## WP2876 WP2876
##                                                                 Description
## WP2877                                           Vitamin D Receptor Pathway
## WP2882                                       Nuclear Receptors Meta-Pathway
## WP5039 SARS-CoV-2 innate immunity evasion and cell-specific immune response
## WP453                                         Inflammatory Response Pathway
## WP2446                                        Retinoblastoma gene in cancer
## WP2876                                          Pregnane X receptor pathway
##        setSize enrichmentScore       NES       pvalue     p.adjust      qvalues
## WP2877      67      -0.4112666 -2.434487 3.030956e-06 0.0001126505 7.710328e-05
## WP2882      90      -0.3594196 -2.294327 7.810567e-06 0.0002177195 1.490174e-04
## WP5039      20      -0.6126698 -2.493764 1.400247e-05 0.0002872222 1.965883e-04
## WP453       16      -0.6319288 -2.365198 5.386777e-05 0.0009240395 6.324556e-04
## WP2446      17      -0.6080131 -2.322748 1.870225e-04 0.0024348694 1.666538e-03
## WP2876      11      -0.6843407 -2.257597 1.965365e-04 0.0024348694 1.666538e-03
##        rank                    leading_edge
## WP2877 1687  tags=70%, list=28%, signal=51%
## WP2882 1258  tags=41%, list=21%, signal=33%
## WP5039 2027  tags=90%, list=33%, signal=60%
## WP453  1644  tags=81%, list=27%, signal=60%
## WP2446 2415 tags=100%, list=39%, signal=61%
## WP2876 1041  tags=91%, list=17%, signal=76%
##                                                                                                                                                                                                                                                                                                               core_enrichment
## WP2877 MYC/SOSTDC1/KRTAP5-1/TREM1/CYP27B1/CST6/TNFAIP3/SPRR1B/SALL4/S100A9/IRF4/KLF4/CTLA4/EPHB4/KRT16/KNG1/SULT2A1/S100A6/TNFRSF11B/ADGRE5/PTGER4/CRACR2A/SERPINB1/G0S2/S100A4/CRACR2B/SULT1C2/CYP2C9/CA9/CYP3A5/BDKRB1/CASP5/ATP2C2/ALPG/KRTAP4-1/NOX1/ALPI/TNFSF11/CYP2S1/CST1/VDR/HNF1A/CLDN2/HSD17B2/CEACAM1/CYP2B6/CDX2
## WP2882                                                                        BIRC3/SOD3/CES3/CES1/SERPINA1/EPHA2/UGT1A1/ALDH3A1/CYP4F12/GSTA1/SLC6A19/CYP2C9/SLC6A20/CYP3A5/FGF19/EDN2/SLC39A4/KLK15/UGT1A6/NR0B2/ABCC3/ADGRF4/UGT2B7/PCK1/SLC6A14/SLC39A5/NR1I2/VDR/CCL20/FGFBP1/S100P/SCNN1A/SLC5A1/CYP2B6/TNS4/FABP1/GPX2
## WP5039                                                                                                                                                                                                               PPBP/IL6/CASP8/TRAF5/PF4/CCL5/CXCL17/IFITM1/CXCL10/CXCL6/CXCL13/CXCL11/CSF2/CXCL9/CXCL3/CXCL8/CXCL1/ACE2
## WP453                                                                                                                                                                                                                                           LAMB1/CD28/CD80/CD40LG/IL2RB/LCK/IL2RA/COL1A2/THBS1/IL2RG/COL3A1/COL1A1/LAMC2
## WP2446                                                                                                                                                                                                                                POLE2/MYC/HDAC1/CDT1/KIF4A/E2F2/TOP2A/CCNB1/CDC45/CDK1/ORC1/TTK/CCNA2/CCNB2/RRM2/MAPK13
## WP2876                                                                                                                                                                                                                                                   SRPX2/SULT2A1/UGT1A1/CYP4F12/CYP2C9/CYP3A5/UGT1A6/ABCC3/NR1I2/CYP2B6
gwp.lgg.dn <- id.table(gwp.lgg.dn)

## to collect all functional analysis results
keep.colums.gsea <- c("ID","Description","pvalue","p.adjust","setSize","core_enrichment",
                      "table.id","tool","cancer","regulation_proccess")
fa.DEA1 <- rbind(fa.DEA1,
                  setNames(gwp.gbm.up[,keep.colums.gsea], names(fa.DEA1)),
                  setNames(gwp.gbm.dn[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(gwp.lgg.up[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(gwp.lgg.dn[,keep.colums.gsea],names(fa.DEA1)))

Gene Ontology (GO) functional analysis

Gene ontology functional analysis with clusterProfiler functions enrichGo adn gseGO. Due to the parent-childhood annotation of GO terms, dropGO is applied to avoid general terms, eliminating higher levels of GO. Only biology proccess anotation is set for the analysis.

ORA in GO
#level to drop
level.go <- 5

### GBM
## BIOLOGICAL PROCESS (BP)
# ORA GO up BP
ego.gbm.up <- enrichGO(gene = gbm.up.genelist$ENSEMBL,
                          OrgDb = org.Hs.eg.db,
                          keyType = 'ENSEMBL',
                          ont = "BP",
                          pAdjustMethod = "BH",
                          pvalueCutoff  = 0.01,
                          qvalueCutoff  = 0.05,
                          readable = TRUE)

ego.gbm.up <- setReadable(dropGO(ego.gbm.up,level = 1:level.go),
                            org.Hs.eg.db, keyType = "ENTREZID")
head(ego.gbm.up)
##                    ID
## GO:0050808 GO:0050808
## GO:0007416 GO:0007416
## GO:0007156 GO:0007156
## GO:1904062 GO:1904062
## GO:2001257 GO:2001257
## GO:0045666 GO:0045666
##                                                                Description
## GO:0050808                                            synapse organization
## GO:0007416                                                synapse assembly
## GO:0007156 homophilic cell adhesion via plasma membrane adhesion molecules
## GO:1904062                    regulation of cation transmembrane transport
## GO:2001257                           regulation of cation channel activity
## GO:0045666                   positive regulation of neuron differentiation
##            GeneRatio   BgRatio       pvalue     p.adjust       qvalue
## GO:0050808  161/1901 479/21081 2.515394e-52 1.395792e-48 1.170055e-48
## GO:0007416   78/1901 195/21081 1.157011e-31 2.140085e-28 1.793976e-28
## GO:0007156   64/1901 172/21081 3.795649e-24 1.914732e-21 1.605069e-21
## GO:1904062   95/1901 365/21081 7.279743e-22 2.376194e-19 1.991900e-19
## GO:2001257   65/1901 194/21081 1.276043e-21 3.933756e-19 3.297563e-19
## GO:0045666  100/1901 400/21081 1.489909e-21 4.351318e-19 3.647594e-19
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        geneID
## GO:0050808 GPM6A/CTNND2/GAP43/DNER/TNR/KIF1A/SEZ6L/SLITRK2/LRRTM3/SEZ6/BCAN/NLGN1/PTN/DSCAM/CNTN2/SNCB/ERBB4/SLITRK3/NRXN1/LHFPL4/CTNNA2/GRID2/NRCAM/SLITRK1/CAMK2B/NTRK3/PCDHGC4/MAPT/C1QL1/ADGRB3/ARC/ADD2/NTRK2/SHISA7/LRRN3/CDH2/LRRC4B/PCDHGC5/NLGN3/GABRA1/SLIT1/PCDH8/SLC6A1/WNT7A/NTNG1/LRRC4C/ADGRB1/LRRN1/ZNF365/CNKSR2/CX3CR1/LRRTM2/TMEM108/NLGN4X/RAB39B/DGKB/ADGRB2/ZDHHC15/GABRG2/MAP1B/ADGRL3/NEFL/SLC8A3/TUBA1A/SLITRK5/CBLN4/PCDHGC3/NRXN2/CHRNB2/NLGN4Y/ERC2/NEUROD2/GLRB/CAMKV/IGSF21/CNTN5/INA/PAK3/SPARCL1/SEMA3E/WASF3/LRRC4/UNC13A/MAGI2/BSN/CACNB4/DLG2/GRM5/UNC13C/APOE/TREM2/KIRREL3/LRRTM1/SHANK1/NTN1/PTPRS/PCDHB6/FRMPD4/LRTM2/CDH8/GABRB3/PPFIA4/CUX2/CACNG2/SYN1/NFASC/PCDHB5/SNCA/SYNDIG1/ROBO2/ZNF804A/FYN/LRFN1/PPFIA2/PALM/SIX1/DLG4/SHISA6/NLGN2/PCDH17/SPOCK2/TIAM1/CLSTN2/OBSL1/IL1RAPL1/DLGAP3/NEFH/SLC8A2/PFN2/PCDHB16/MDGA1/LRRK2/MYOT/PCDHB3/COL4A5/DRP2/PCDHB9/PCDHB10/EPHB1/SLITRK4/OXTR/CDH9/CDK5R1/DNM3/WASF1/EPHA4/C3/NTNG2/ETV5/PCDHB2/IL1RAP/TNC/ARHGAP33/MYO5A/RAB3A/WNT7B/TANC2/MEF2C/DOCK10/GPRASP2/C1QB
## GO:0007416                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GPM6A/GAP43/DNER/SLITRK2/LRRTM3/NLGN1/DSCAM/ERBB4/SLITRK3/NRXN1/LHFPL4/GRID2/NRCAM/SLITRK1/NTRK3/ADGRB3/ADD2/NTRK2/LRRN3/CDH2/LRRC4B/NLGN3/GABRA1/SLIT1/WNT7A/ADGRB1/LRRN1/LRRTM2/NLGN4X/ADGRB2/GABRG2/MAP1B/ADGRL3/SLITRK5/CBLN4/NRXN2/CHRNB2/NLGN4Y/CNTN5/LRRC4/MAGI2/BSN/KIRREL3/LRRTM1/SHANK1/NTN1/PTPRS/PCDHB6/LRTM2/GABRB3/CUX2/PCDHB5/SNCA/SYNDIG1/ROBO2/LRFN1/SIX1/NLGN2/PCDH17/SPOCK2/CLSTN2/OBSL1/IL1RAPL1/PCDHB16/MDGA1/PCDHB3/PCDHB9/PCDHB10/EPHB1/SLITRK4/OXTR/CDH9/DNM3/NTNG2/PCDHB2/IL1RAP/MEF2C/GPRASP2
## GO:0007156                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     PCDH10/CDH10/CDH20/IGSF11/DSCAM/CNTN2/PCDHGC4/PCDH9/CADM3/CDH2/PCDHGC5/PCDH15/PCDH8/CDH4/FAT3/CDH22/PCDHGC3/CDH18/IGSF21/PLXNB3/PTPRT/PCDHB1/PCDH11X/CADM1/TRO/DSCAML1/KIRREL3/CNTN6/PCDHB6/PCDHA1/CDH8/PCDHA11/PCDHGB2/PCDHB8/PCDHB7/PCDHGB1/PCDHB5/ROBO2/PCDHGA4/PCDH19/PCDH17/CDH19/ROBO3/CLSTN2/OBSL1/PCDHA2/CDH12/PCDHB16/DCHS2/PCDHA10/MYOT/PCDHB3/PCDHB9/PCDHGB7/PCDHB10/PCDHGA9/PCDHGA3/CDH9/PCDHAC2/CELSR2/PCDHB2/CDH6/PCDHA3/PCDHAC1
## GO:1904062                                                                                                                                                                                                                                                                                                                                                                                                                                                                CACNG7/GRIA2/ATP1B2/DPP6/KCNIP1/GRIA1/ATP1A2/NLGN1/ACTN2/GSG1L/GRIA3/STAC2/GRIA4/ARC/SHISA7/NLGN3/KCNC1/LRRC55/CACNG4/JPH4/CNIH2/HAP1/PIRT/NETO1/CASQ1/SLN/WNK3/ANK2/FGF14/FXYD7/HAMP/CRHR1/NEFL/CACNG3/FGF12/FXYD6/GRIN2A/KCNE5/SCN2B/SCN3B/KCNA1/KCNC2/NPPA/RGN/SHISA9/AGT/CACNG6/CACNB4/DLG2/JPH3/S100A1/CACNG1/TREM2/SCN4B/CBARP/SHANK1/CACNG8/AKAP6/FHL1/MAPK8IP2/STAC/KCNS1/KCNN2/CACNG2/HPCA/SNCA/FYN/KCNIP3/OPRL1/GSTM2/DLG4/SHISA6/DPP10/PDE4B/FGF11/NLGN2/CRHBP/CNIH3/FXYD1/KCNAB3/TRDN/APLNR/SCN1B/TRPC1/RGS4/CRH/KCNIP2/SNTA1/MYO5A/GPER1/NOS1/LRRC7/KCNIP4/MEF2C/KCNE4
## GO:2001257                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CACNG7/GRIA2/GRIA1/NLGN1/ACTN2/GSG1L/GRIA3/STAC2/GRIA4/ARC/SHISA7/NLGN3/KCNC1/LRRC55/CACNG4/JPH4/CNIH2/HAP1/PIRT/NETO1/CASQ1/ANK2/FGF14/CRHR1/NEFL/CACNG3/FGF12/GRIN2A/KCNE5/KCNA1/KCNC2/NPPA/SHISA9/CACNB4/DLG2/JPH3/S100A1/TREM2/CBARP/SHANK1/CACNG8/AKAP6/MAPK8IP2/STAC/KCNS1/CACNG2/HPCA/OPRL1/GSTM2/DLG4/SHISA6/PDE4B/FGF11/NLGN2/CRHBP/CNIH3/TRDN/SCN1B/CRH/KCNIP2/MYO5A/NOS1/LRRC7/MEF2C/KCNE4
## GO:0045666                                                                                                                                                                                                                                                                                                                                                                                                                             CACNG7/FOXG1/ATP1B2/ASCL1/BRINP2/FUT9/RND2/NLGN1/PTN/DSCAM/TUBB2B/MMD2/NKX2-2/CNR1/NRCAM/SLITRK1/CAMK2B/NTRK3/MAPT/CNTN1/NTRK2/RIT2/PLPPR5/SH3GL3/BRINP3/FEZ1/NKX2-5/CDH4/SOX11/ALK/ZDHHC15/BEND6/MAP6/NDRG4/MAP1B/VWC2L/SYT4/DLX1/RNF112/NEFL/GPRC5B/SYT3/NKX6-1/SHOX2/NEUROD2/RIMS2/NEUROD1/NAP1L2/PLXNB3/PAK3/RIMS1/AGT/BRINP1/UNC13A/MAGI2/FEZF2/APOE/PLXNA4/SHANK1/NTN1/NGFR/APBB1/VWC2/STMN2/PACSIN1/CUX2/METRN/ROBO2/ZNF804A/FYN/DLG4/DLX2/CPNE6/TIAM1/CHODL/DPYSL3/OBSL1/IL1RAPL1/PRKD1/SYT17/GPC2/ZEB1/TCF4/SCN1B/GDF5/LPAR1/TRIM67/EPHA4/ZEB2/SYT1/ETV5/DAB1/LRRC7/CPNE5/RUFY3/BMP7/MEF2C/BCL6/GPRASP2/CDKL3
##            Count
## GO:0050808   161
## GO:0007416    78
## GO:0007156    64
## GO:1904062    95
## GO:2001257    65
## GO:0045666   100
ego.gbm.up <- id.table(ego.gbm.up)

# ORA GO down BP
ego.gbm.dn <- enrichGO(gene = gbm.dn.genelist$ENSEMBL,
                          OrgDb = org.Hs.eg.db,
                          keyType = 'ENSEMBL',
                          ont = "BP",
                          pAdjustMethod = "BH",
                          pvalueCutoff  = 0.01,
                          qvalueCutoff  = 0.05,
                          readable = TRUE)
ego.gbm.dn <- setReadable(dropGO(ego.gbm.dn,level = 1:level.go),
                            org.Hs.eg.db, keyType = "ENTREZID")
head(ego.gbm.dn)
##                    ID                              Description GeneRatio
## GO:0016064 GO:0016064  immunoglobulin mediated immune response   87/1319
## GO:0019724 GO:0019724                 B cell mediated immunity   88/1319
## GO:0050853 GO:0050853        B cell receptor signaling pathway   60/1319
## GO:0099024 GO:0099024             plasma membrane invagination   60/1319
## GO:0010324 GO:0010324                    membrane invagination   60/1319
## GO:0050871 GO:0050871 positive regulation of B cell activation   54/1319
##              BgRatio       pvalue     p.adjust       qvalue
## GO:0016064 264/21081 7.610375e-40 6.561412e-37 5.747836e-37
## GO:0019724 274/21081 2.743635e-39 2.027546e-36 1.776143e-36
## GO:0050853 130/21081 1.549949e-37 8.017887e-35 7.023717e-35
## GO:0099024 130/21081 1.549949e-37 8.017887e-35 7.023717e-35
## GO:0010324 140/21081 2.938603e-35 1.266783e-32 1.109709e-32
## GO:0050871 143/21081 1.599504e-28 5.171396e-26 4.530174e-26
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                geneID
## GO:0016064       GCNT3/IGHA2/IGHA1/IGHV5-51/IGKC/IGHV1-18/IGHV4-39/IGHV4-59/IGHG4/IGHV3-23/IGHV3-11/IGKV4-1/IGLV3-25/IGLV2-23/C4BPB/IGKV1-5/IGKV3-15/IGLC2/IGLV3-21/IGHG1/IGHV3-49/IGHV3-15/IGKV3-20/IGLL5/IGHV3-74/IGHG2/IGHV3-21/IGHV1-69D/IGHV3-30/IGLV3-19/IGKV1-16/IGLV6-57/IGLV2-8/IGHV1-24/IGHV3-72/IGKV1-17/IGLV2-14/IGLV2-11/IGHG3/IGHV3-73/IGLC3/IGLV1-40/IGHV3-48/IGHV4-34/IGLV1-44/IGHV3-33/IGHV4-28/IGHV3-53/IGHV7-81/IGHV1-69/IGHM/IGHV2-26/CR2/IGKV3D-20/IGHV3-43/C4BPA/IGHV3-66/IGHV4-61/IGHV1-58/IGHV3-13/IGLV1-51/IGHV2-5/IGLV7-43/IGLV1-47/IGLV3-27/IGLC7/IGHV3-64/IGKV3D-11/IGHV2-70/IGHV3-20/IGHV6-1/IGKV1-12/IGHV2-70D/IGHV3-35/IGHV1-3/IGKV5-2/IGHV1-45/IGHV3-7/CD55/IGKV2-30/IGKV2-29/IGHV4-4/CD46/IGKV1-39/STAT6/IGHD/CD40LG
## GO:0019724 GCNT3/IGHA2/IGHA1/IGHV5-51/IGKC/IGHV1-18/IGHV4-39/IGHV4-59/IGHG4/IGHV3-23/IGHV3-11/IGKV4-1/IGLV3-25/IGLV2-23/C4BPB/IGKV1-5/IGKV3-15/IGLC2/IGLV3-21/IGHG1/IGHV3-49/IGHV3-15/IGKV3-20/IGLL5/IGHV3-74/IGHG2/IGHV3-21/IGHV1-69D/IGHV3-30/IGLV3-19/IGKV1-16/IGLV6-57/IGLV2-8/IGHV1-24/IGHV3-72/IGKV1-17/IGLV2-14/IGLV2-11/IGHG3/IGHV3-73/IGLC3/IGLV1-40/IGHV3-48/IGHV4-34/IGLV1-44/IGHV3-33/IGHV4-28/IGHV3-53/IGHV7-81/IGHV1-69/IGHM/IGHV2-26/CR2/IGKV3D-20/IGHV3-43/C4BPA/IGHV3-66/IGHV4-61/IGHV1-58/IGHV3-13/IGLV1-51/IGHV2-5/IGLV7-43/IGLV1-47/IGLV3-27/IGLC7/IGHV3-64/IGKV3D-11/IGHV2-70/IGHV3-20/IGHV6-1/IGKV1-12/IGHV2-70D/IGHV3-35/IGHV1-3/IGKV5-2/IGHV1-45/IGHV3-7/CD55/IGKV2-30/IGKV2-29/IGHV4-4/CD46/IGKV1-39/STAT6/IGHD/CD40LG/HLA-G
## GO:0050853                                                                                                                                                                                                                                                           IGHA2/IGHA1/IGHV5-51/IGKC/IGHV1-18/IGHV4-39/IGHV4-59/IGHG4/IGHV3-23/IGHV3-11/IGLC2/IGHG1/IGHV3-49/IGHV3-15/IGLL5/IGHV3-74/IGHG2/IGHV3-21/IGHV1-69D/IGHV3-30/IGHV1-24/IGHV3-72/IGHG3/IGHV3-73/IGLC3/IGHV3-48/IGHV4-34/IGHV3-33/IGHV4-28/IGHV3-53/IGHV7-81/IGHV1-69/IGHM/IGHV2-26/IGHV3-43/IGHV3-66/IGHV4-61/IGHV1-58/IGHV3-13/IGHV2-5/IGLC7/IGHV3-64/IGHV2-70/IGHV3-20/IGHV6-1/IGHV2-70D/IGHV3-35/IGHV1-3/CD79A/IGHV1-45/IGHV3-7/MS4A1/GCSAM/LCK/FCRL3/TEC/IGHV4-4/BMX/IGHD/CTLA4
## GO:0099024                                                                                                                                                                                                                                                   IGHA2/IGHA1/IGHV5-51/IGKC/IGHV1-18/IGHV4-39/IGHV4-59/IGHG4/IGHV3-23/IGHV3-11/IGLC2/IGHG1/IGHV3-49/IGHV3-15/IGLL5/IGHV3-74/IGHG2/IGHV3-21/IGHV1-69D/IGHV3-30/IGHV1-24/IGHV3-72/IGHG3/IGHV3-73/IGLC3/IGHV3-48/IGHV4-34/IGHV3-33/IGHV4-28/IGHV3-53/IGHV7-81/IGHV1-69/IGHM/IGHV2-26/IGHV3-43/IGHV3-66/IGHV4-61/IGHV1-58/IGHV3-13/IGHV2-5/IGLC7/IGHV3-64/IGHV2-70/IGHV3-20/PPARG/IGHV6-1/IGHV2-70D/IGHV3-35/IGHV1-3/F2RL1/HAVCR1/IGHV1-45/IGHV3-7/ALOX15/IGHV4-4/IGHD/SPIRE2/THBS1/ITGA2/MYH9
## GO:0010324                                                                                                                                                                                                                                                   IGHA2/IGHA1/IGHV5-51/IGKC/IGHV1-18/IGHV4-39/IGHV4-59/IGHG4/IGHV3-23/IGHV3-11/IGLC2/IGHG1/IGHV3-49/IGHV3-15/IGLL5/IGHV3-74/IGHG2/IGHV3-21/IGHV1-69D/IGHV3-30/IGHV1-24/IGHV3-72/IGHG3/IGHV3-73/IGLC3/IGHV3-48/IGHV4-34/IGHV3-33/IGHV4-28/IGHV3-53/IGHV7-81/IGHV1-69/IGHM/IGHV2-26/IGHV3-43/IGHV3-66/IGHV4-61/IGHV1-58/IGHV3-13/IGHV2-5/IGLC7/IGHV3-64/IGHV2-70/IGHV3-20/PPARG/IGHV6-1/IGHV2-70D/IGHV3-35/IGHV1-3/F2RL1/HAVCR1/IGHV1-45/IGHV3-7/ALOX15/IGHV4-4/IGHD/SPIRE2/THBS1/ITGA2/MYH9
## GO:0050871                                                                                                                                                                                                                                                                                         IGHA2/IGHA1/IGHV5-51/IGKC/IGHV1-18/IGHV4-39/IGHV4-59/IGHG4/IGHV3-23/IGHV3-11/IGLC2/IGHG1/IGHV3-49/IGHV3-15/IGLL5/IGHV3-74/IGHG2/IGHV3-21/IGHV1-69D/IGHV3-30/IGHV1-24/IGHV3-72/IGHG3/IGHV3-73/IGLC3/IGHV3-48/IGHV4-34/IGHV3-33/IGHV4-28/IGHV3-53/IGHV7-81/IGHV1-69/IGHM/IGHV2-26/IGHV3-43/IGHV3-66/IGHV4-61/IGHV1-58/IGHV3-13/IGHV2-5/IGLC7/IGHV3-64/IGHV2-70/IGHV3-20/IGHV6-1/IGHV2-70D/IGHV3-35/IGHV1-3/IGHV1-45/IGHV3-7/FCRL3/IGHV4-4/STAT6/IGHD
##            Count
## GO:0016064    87
## GO:0019724    88
## GO:0050853    60
## GO:0099024    60
## GO:0010324    60
## GO:0050871    54
ego.gbm.dn <- id.table(ego.gbm.dn)

### LGG
## BIOLOGICAL PROCESS (BP)
# ORA GO up BP
ego.lgg.up <- enrichGO(gene = lgg.up.genelist$ENSEMBL,
                          OrgDb = org.Hs.eg.db,
                          keyType = 'ENSEMBL',
                          ont = "BP",
                          pAdjustMethod = "BH",
                          pvalueCutoff  = 0.01,
                          qvalueCutoff  = 0.05,
                          readable = TRUE)

ego.lgg.up <- setReadable(dropGO(ego.lgg.up,level = 1:level.go),
                            org.Hs.eg.db, keyType = "ENTREZID")
head(ego.lgg.up)
##                    ID
## GO:0050808 GO:0050808
## GO:0007416 GO:0007416
## GO:0007156 GO:0007156
## GO:0035249 GO:0035249
## GO:1904062 GO:1904062
## GO:2001257 GO:2001257
##                                                                Description
## GO:0050808                                            synapse organization
## GO:0007416                                                synapse assembly
## GO:0007156 homophilic cell adhesion via plasma membrane adhesion molecules
## GO:0035249                            synaptic transmission, glutamatergic
## GO:1904062                    regulation of cation transmembrane transport
## GO:2001257                           regulation of cation channel activity
##            GeneRatio   BgRatio       pvalue     p.adjust       qvalue
## GO:0050808  185/2248 479/21081 1.505233e-59 8.664118e-56 7.290079e-56
## GO:0007416   90/2248 195/21081 1.316426e-36 1.296157e-33 1.090600e-33
## GO:0007156   84/2248 172/21081 1.457612e-36 1.296157e-33 1.090600e-33
## GO:0035249   56/2248 107/21081 8.842456e-27 2.793131e-24 2.350170e-24
## GO:1904062  113/2248 365/21081 1.202383e-26 3.411778e-24 2.870705e-24
## GO:2001257   76/2248 194/21081 1.882391e-25 3.869657e-23 3.255970e-23
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        geneID
## GO:0050808 TNR/GPM6A/CTNND2/SEZ6L/KIF1A/DNER/BCAN/LRRTM3/DSCAM/ERBB4/NRXN1/SLITRK2/SLITRK1/LHFPL4/SEZ6/SHISA7/GRID2/SNCB/NLGN1/CNTN2/MAPT/NTRK2/GAP43/ADGRB3/SLIT1/CTNNA2/SLITRK3/GABRA1/NTRK3/C1QL1/SLC6A1/GABRG2/ADD2/ADGRB1/CAMK2B/PCDHGC4/INA/CACNG2/SLITRK5/LRRC4C/NRCAM/SLC8A3/PTN/NLGN3/DGKB/CUX2/LRRTM2/LRRN1/LRRC4B/GABRB3/ZNF365/GRM5/PCDHGC5/WNT7A/LRRN3/CNKSR2/UNC13A/LRTM2/PAK3/ADGRL3/CDH2/PCDH8/CHRNB2/UNC13C/NRXN2/TMEM108/NEFL/BSN/DLG2/IGSF21/RAB39B/CAMKV/ARC/LRRC4/ERC2/ADGRB2/WASF3/FRMPD4/SHANK1/MAP1B/NEUROD2/CX3CR1/NLGN4X/IL1RAPL1/LRRTM1/SPARCL1/PCDHGC3/SLC8A2/CACNB4/ZDHHC15/GLRB/PPFIA2/NTNG1/ZNF804A/CDH8/SYN1/CLSTN2/APOE/WNT7B/DNM3/CDH9/DLGAP3/MAGI2/EPHB1/KIRREL3/PTPRS/CNTN5/NTNG2/SPOCK2/SHISA6/SLITRK4/PCDHB5/NLGN2/GRIN1/LRFN5/PALM/DRP2/NTN1/SNCA/CDK5R1/MYOT/NEFH/PCDHB6/DLG4/TIAM1/TUBA1A/NFASC/PPFIA4/FYN/CBLN4/SYNDIG1/PCDH17/IGFN1/LRFN2/GABRB2/CBLN2/LRFN1/WASF1/MYO5A/RAB3A/MDGA1/SIX1/OBSL1/PCDHB9/DOCK10/COL4A5/RELN/PFN2/OPHN1/TANC2/SEMA3E/IGSF9B/PCDHB10/FGF13/TREM2/ARHGAP33/CTTNBP2/SNCG/PCDHB2/CBLN1/LRRK2/LINGO2/ARHGAP22/MYH10/L1CAM/ASIC2/ROBO2/NLGN4Y/PCDHB4/PCDHB16/GPRASP2/ABI2/MEF2C/SDK2/EPHA4/DISC1/PCDHB3/CX3CL1/SRCIN1/PPP1R9A/SYNGAP1/SPARC/PRNP/COLQ/FLRT2
## GO:0007416                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 GPM6A/DNER/LRRTM3/DSCAM/ERBB4/NRXN1/SLITRK2/SLITRK1/LHFPL4/GRID2/NLGN1/NTRK2/GAP43/ADGRB3/SLIT1/SLITRK3/GABRA1/NTRK3/GABRG2/ADD2/ADGRB1/SLITRK5/NRCAM/NLGN3/CUX2/LRRTM2/LRRN1/LRRC4B/GABRB3/WNT7A/LRRN3/LRTM2/ADGRL3/CDH2/CHRNB2/NRXN2/BSN/LRRC4/ADGRB2/SHANK1/MAP1B/NLGN4X/IL1RAPL1/LRRTM1/CLSTN2/DNM3/CDH9/MAGI2/EPHB1/KIRREL3/PTPRS/CNTN5/NTNG2/SPOCK2/SLITRK4/PCDHB5/NLGN2/GRIN1/LRFN5/NTN1/SNCA/PCDHB6/CBLN4/SYNDIG1/PCDH17/IGFN1/GABRB2/CBLN2/LRFN1/MDGA1/SIX1/OBSL1/PCDHB9/PCDHB10/FGF13/PCDHB2/CBLN1/LINGO2/ASIC2/ROBO2/NLGN4Y/PCDHB4/PCDHB16/GPRASP2/MEF2C/SDK2/PCDHB3/PPP1R9A/COLQ/FLRT2
## GO:0007156                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CDH20/PCDH15/CDH10/PCDH10/DSCAM/CNTN2/IGSF11/CADM3/PTPRT/CDH18/PCDHGC4/PCDH9/FAT3/PCDH11X/CDH22/DSCAML1/PCDHGC5/CDH2/PCDH8/IGSF21/PLXNB3/CDH4/PCDHA1/PCDHGC3/CNTN6/CDH8/CLSTN2/TRO/CDH9/PCDHA2/KIRREL3/PCDHB5/MYOT/CDH12/PCDHGB1/PCDHB6/CADM1/PCDHGA3/DCHS2/PCDH17/IGFN1/PCDHA3/CDH7/PCDH19/PCDH11Y/PCDHGA4/PCDHA11/PCDHA10/PCDHA9/PCDHB1/OBSL1/PCDHB9/CELSR2/PCDHAC2/PCDHGB2/PCDHGB7/PCDHA6/IGSF9B/ROBO3/PCDHAC1/PCDHB10/PCDHA5/VSTM2L/PCDHB8/PCDHB2/L1CAM/ROBO2/PCDHGA2/PCDHA12/PCDHB4/PCDHA13/CDH19/PCDHB16/PCDHA7/PCDHGA9/PCDH7/SDK2/RET/PCDHA4/PCDHB3/PCDHB7/ROBO1/PCDHGB3/PCDHGA1
## GO:0035249                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TNR/GRIA2/CACNG7/ATP1A2/NRXN1/GRID2/NLGN1/GRM3/GRIK4/GRIK3/CACNG2/GRIK2/CACNG4/NLGN3/CACNG3/SLC17A7/GRM5/GRIK5/UNC13A/CDH2/UNC13C/CNR1/CNIH2/SHANK1/GRM1/GRID1/SLC17A6/DGKI/CACNG8/MAPK8IP2/CDH8/ADORA1/SLC17A8/SHC3/GRIK1/NLGN2/GRIN1/HTR2A/SYT1/GRM6/RELN/GRM7/OPHN1/GRM2/LRRK2/PRKN/NPY2R/MEF2C/GRM4/DISC1/UCN/CNIH3/EGFR/GLUL/STXBP1/NAPB
## GO:1904062                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               GRIA2/CACNG7/GRIA1/ATP1A2/DPP6/ATP1B2/GRIA4/SHISA7/GRIA3/KCNIP1/NLGN1/ACTN2/JPH4/GSG1L/NETO1/KCNC1/JPH3/CACNG2/CACNG4/NLGN3/CACNG3/FGF12/SCN3B/CRHR1/GRIN2A/SCN2B/KCNC2/CASQ1/FXYD7/ANK2/WNK3/FGF14/NEFL/DPP10/FXYD6/KCNA1/CNIH2/KCNIP3/LRRC55/NPPA/DLG2/ARC/STAC2/HAP1/SHANK1/AKAP6/SHISA9/CACNG8/CACNB4/MAPK8IP2/KCNN2/CACNG6/S100A1/KCNIP2/CACNG1/AGT/TRDN/SHISA6/SCN4B/RASGRF1/CRHBP/PIRT/NLGN2/NOS1/GRIN1/SNCA/FHL1/DLG4/FYN/CBARP/RGS9/LRRC7/FGF11/HPCA/GSTM2/CRH/OPRL1/KCNE5/HECW1/MYO5A/RGN/RELN/KCNAB1/TRPC1/PDE4B/EHD3/KCNS2/SCN1B/CACNA2D1/KCNS1/FGF13/KCNAB3/TREM2/FXYD1/RGS4/TMC1/HAMP/VAMP2/SLN/SHISA8/FXYD2/SNTA1/CAPN3/KCNIP4/MEF2C/ADRB2/GPER1/CX3CL1/KCNE2/CNIH3/PRNP/SLC8A1/APLNR
## GO:2001257                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       GRIA2/CACNG7/GRIA1/GRIA4/SHISA7/GRIA3/NLGN1/ACTN2/JPH4/GSG1L/NETO1/KCNC1/JPH3/CACNG2/CACNG4/NLGN3/CACNG3/FGF12/CRHR1/GRIN2A/KCNC2/CASQ1/ANK2/FGF14/NEFL/KCNA1/CNIH2/LRRC55/NPPA/DLG2/ARC/STAC2/HAP1/SHANK1/AKAP6/SHISA9/CACNG8/CACNB4/MAPK8IP2/S100A1/KCNIP2/TRDN/SHISA6/RASGRF1/CRHBP/PIRT/NLGN2/NOS1/GRIN1/DLG4/CBARP/RGS9/LRRC7/FGF11/HPCA/GSTM2/CRH/OPRL1/KCNE5/MYO5A/RELN/KCNAB1/PDE4B/EHD3/KCNS2/SCN1B/CACNA2D1/KCNS1/FGF13/TREM2/VAMP2/SHISA8/MEF2C/ADRB2/KCNE2/CNIH3
##            Count
## GO:0050808   185
## GO:0007416    90
## GO:0007156    84
## GO:0035249    56
## GO:1904062   113
## GO:2001257    76
ego.lgg.up <- id.table(ego.lgg.up)

# ORA GO down BP
ego.lgg.dn <- enrichGO(gene = lgg.dn.genelist$ENSEMBL,
                          OrgDb = org.Hs.eg.db,
                          keyType = 'ENSEMBL',
                          ont = "BP",
                          pAdjustMethod = "BH",
                          pvalueCutoff  = 0.01,
                          qvalueCutoff  = 0.05,
                          readable = TRUE)
ego.lgg.dn <- setReadable(dropGO(ego.lgg.dn,level = 1:level.go),
                            org.Hs.eg.db, keyType = "ENTREZID")
head(ego.lgg.dn)
##                    ID                              Description GeneRatio
## GO:0019724 GO:0019724                 B cell mediated immunity  105/1956
## GO:0016064 GO:0016064  immunoglobulin mediated immune response  102/1956
## GO:0050853 GO:0050853        B cell receptor signaling pathway   69/1956
## GO:0099024 GO:0099024             plasma membrane invagination   63/1956
## GO:0050864 GO:0050864          regulation of B cell activation   76/1956
## GO:0050871 GO:0050871 positive regulation of B cell activation   65/1956
##              BgRatio       pvalue     p.adjust       qvalue
## GO:0019724 274/21081 4.248654e-39 4.151643e-36 3.327367e-36
## GO:0016064 264/21081 2.229833e-38 1.867645e-35 1.496839e-35
## GO:0050853 130/21081 4.916299e-37 3.202696e-34 2.566825e-34
## GO:0099024 130/21081 6.326986e-31 2.473008e-28 1.982012e-28
## GO:0050864 189/21081 3.037881e-30 1.113194e-27 8.921777e-28
## GO:0050871 143/21081 8.539020e-30 2.944957e-27 2.360259e-27
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        geneID
## GO:0019724 IGHA2/GCNT3/IGHA1/IGKV4-1/IGKV1-5/IGKV3-20/IGLC2/IGHV3-23/IGHG2/IGKC/IGLV3-21/IGHV5-51/IGLV2-14/IGHG1/IGLC3/IGHV4-39/IGLV2-23/IGHV1-18/IGLL5/IGKV3-15/IGLV3-19/IGLV3-25/IGLV2-11/IGHV4-59/IGHG4/IGLV1-40/IGHG3/IGHV3-30/IGHV3-21/IGHV3-11/IGHV3-74/IGLV6-57/IGHV3-49/IGKV1-16/IGHV4-34/IGHV3-15/IGLV2-8/IGKV1-17/IGHV3-33/IGHV1-69D/IGHM/IGLV1-44/IGHV3-48/IGHV3-72/IGHV3-73/IGHV1-24/C4BPB/IGHV3-53/IGHV1-69/IGKV3D-20/IGHV4-28/IGLV1-47/IGLV7-43/IGHV2-26/IGHV4-61/IGHV3-13/IGHV3-66/IGHV3-43/IGHV7-81/IGLC7/IGLV3-27/IGHV2-70/IGHV1-58/IGHV2-5/IGKV3D-11/IGLV1-51/IGHV3-64/C4BPA/IGHV3-20/CR2/IGHV6-1/IGHV1-3/IGKV2-30/IGHV2-70D/IGKV5-2/IGKV1-12/IGHV3-7/IGHV3-35/IGHV1-45/IGKV1-39/CD70/CD55/IGKV2-29/IGHV4-4/IGHD/CD40LG/BCL3/STAT6/TRBC2/BATF/CD28/EXO1/C2/CD46/TFRC/ZP3/TCIRG1/IL4R/CLCF1/HLA-G/CD27/SLA2/CD19/BCL10/PRKCD
## GO:0016064                 IGHA2/GCNT3/IGHA1/IGKV4-1/IGKV1-5/IGKV3-20/IGLC2/IGHV3-23/IGHG2/IGKC/IGLV3-21/IGHV5-51/IGLV2-14/IGHG1/IGLC3/IGHV4-39/IGLV2-23/IGHV1-18/IGLL5/IGKV3-15/IGLV3-19/IGLV3-25/IGLV2-11/IGHV4-59/IGHG4/IGLV1-40/IGHG3/IGHV3-30/IGHV3-21/IGHV3-11/IGHV3-74/IGLV6-57/IGHV3-49/IGKV1-16/IGHV4-34/IGHV3-15/IGLV2-8/IGKV1-17/IGHV3-33/IGHV1-69D/IGHM/IGLV1-44/IGHV3-48/IGHV3-72/IGHV3-73/IGHV1-24/C4BPB/IGHV3-53/IGHV1-69/IGKV3D-20/IGHV4-28/IGLV1-47/IGLV7-43/IGHV2-26/IGHV4-61/IGHV3-13/IGHV3-66/IGHV3-43/IGHV7-81/IGLC7/IGLV3-27/IGHV2-70/IGHV1-58/IGHV2-5/IGKV3D-11/IGLV1-51/IGHV3-64/C4BPA/IGHV3-20/CR2/IGHV6-1/IGHV1-3/IGKV2-30/IGHV2-70D/IGKV5-2/IGKV1-12/IGHV3-7/IGHV3-35/IGHV1-45/IGKV1-39/CD55/IGKV2-29/IGHV4-4/IGHD/CD40LG/BCL3/STAT6/TRBC2/BATF/CD28/EXO1/C2/CD46/TFRC/ZP3/TCIRG1/IL4R/CLCF1/CD27/CD19/BCL10/PRKCD
## GO:0050853                                                                                                                                                                                                                                                                                                  IGHA2/IGHA1/IGLC2/IGHV3-23/IGHG2/IGKC/IGHV5-51/IGHG1/IGLC3/IGHV4-39/IGHV1-18/IGLL5/IGHV4-59/IGHG4/IGHG3/IGHV3-30/IGHV3-21/IGHV3-11/IGHV3-74/IGHV3-49/IGHV4-34/IGHV3-15/IGHV3-33/IGHV1-69D/IGHM/IGHV3-48/IGHV3-72/IGHV3-73/IGHV1-24/IGHV3-53/IGHV1-69/IGHV4-28/IGHV2-26/IGHV4-61/IGHV3-13/IGHV3-66/IGHV3-43/IGHV7-81/IGLC7/IGHV2-70/IGHV1-58/IGHV2-5/IGHV3-64/IGHV3-20/IGHV6-1/VAV3/IGHV1-3/IGHV2-70D/LCK/IGHV3-7/IGHV3-35/GCSAM/IGHV1-45/CD79A/MS4A1/IGHV4-4/IGHD/TEC/PTPN22/FCRL3/TRBC2/CTLA4/ITK/CD79B/RUNX1/BMX/STAP1/SYK/CD19
## GO:0099024                                                                                                                                                                                                                                                                                                                           IGHA2/IGHA1/IGLC2/IGHV3-23/IGHG2/IGKC/IGHV5-51/IGHG1/IGLC3/IGHV4-39/IGHV1-18/IGLL5/IGHV4-59/IGHG4/IGHG3/IGHV3-30/IGHV3-21/IGHV3-11/IGHV3-74/IGHV3-49/IGHV4-34/IGHV3-15/IGHV3-33/IGHV1-69D/IGHM/IGHV3-48/IGHV3-72/IGHV3-73/IGHV1-24/IGHV3-53/IGHV1-69/IGHV4-28/IGHV2-26/IGHV4-61/IGHV3-13/IGHV3-66/IGHV3-43/IGHV7-81/IGLC7/IGHV2-70/IGHV1-58/IGHV2-5/IGHV3-64/IGHV3-20/PPARG/F2RL1/THBS1/IGHV6-1/IGHV1-3/IGHV2-70D/IGHV3-7/IGHV3-35/IGHV1-45/IGHV4-4/AURKB/HAVCR1/IGHD/ITGA2/TRBC2/ALOX15/RAC2/STAP1/MYH9
## GO:0050864                                                                                                                                                                                                                                                  IGHA2/IGHA1/IGLC2/IGHV3-23/IGHG2/IGKC/IGHV5-51/IGHG1/IGLC3/IGHV4-39/IGHV1-18/IGLL5/IGHV4-59/IGHG4/IGHG3/IGHV3-30/IGHV3-21/IGHV3-11/IGHV3-74/IGHV3-49/IGHV4-34/IGHV3-15/IGHV3-33/IGHV1-69D/IGHM/IGHV3-48/IGHV3-72/IGHV3-73/IGHV1-24/IGHV3-53/IGHV1-69/IGHV4-28/IGHV2-26/IGHV4-61/IGHV3-13/IGHV3-66/IGHV3-43/IGHV7-81/IGLC7/IGHV2-70/IGHV1-58/IGHV2-5/IGHV3-64/MZB1/IGHV3-20/IGHV6-1/VAV3/IGHV1-3/IGHV2-70D/IGHV3-7/IGHV3-35/IGHV1-45/IKZF3/IGHV4-4/IGHD/PAWR/FCRL3/IL7/TNFRSF13B/STAT6/TRBC2/CD28/CTLA4/INHBA/TFRC/IL6/AHR/TNFAIP3/SYK/CLCF1/BANK1/MMP14/TNFRSF4/CD27/CD19/MIR17HG
## GO:0050871                                                                                                                                                                                                                                                                                                                       IGHA2/IGHA1/IGLC2/IGHV3-23/IGHG2/IGKC/IGHV5-51/IGHG1/IGLC3/IGHV4-39/IGHV1-18/IGLL5/IGHV4-59/IGHG4/IGHG3/IGHV3-30/IGHV3-21/IGHV3-11/IGHV3-74/IGHV3-49/IGHV4-34/IGHV3-15/IGHV3-33/IGHV1-69D/IGHM/IGHV3-48/IGHV3-72/IGHV3-73/IGHV1-24/IGHV3-53/IGHV1-69/IGHV4-28/IGHV2-26/IGHV4-61/IGHV3-13/IGHV3-66/IGHV3-43/IGHV7-81/IGLC7/IGHV2-70/IGHV1-58/IGHV2-5/IGHV3-64/IGHV3-20/IGHV6-1/VAV3/IGHV1-3/IGHV2-70D/IGHV3-7/IGHV3-35/IGHV1-45/IGHV4-4/IGHD/FCRL3/IL7/STAT6/TRBC2/CD28/TFRC/IL6/SYK/CLCF1/MMP14/TNFRSF4/CD27
##            Count
## GO:0019724   105
## GO:0016064   102
## GO:0050853    69
## GO:0099024    63
## GO:0050864    76
## GO:0050871    65
ego.lgg.dn <- id.table(ego.lgg.dn)



## to collect all functional analysis results 
fa.DEA1 <- rbind(fa.DEA1,
                  ego.gbm.up[,keep.colums.enricher], 
                  ego.gbm.dn[,keep.colums.enricher], 
                  ego.lgg.up[,keep.colums.enricher], 
                  ego.lgg.dn[,keep.colums.enricher]) 
GSEA in Gene Ontology
set.seed(1234567)

### GBM
## BIOLOGICAL PROCESS (BP)
# GSEA GO BP
ggo.gbm.BP <- gseGO(geneList = c(gbm.up.gene,
                                 gbm.dn.gene),
                    OrgDb = org.Hs.eg.db,
                    ont = "BP",
                    pvalueCutoff = 0.05,
                    eps = 0,
                    verbose = FALSE)
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
ggo.gbm.BP <- setReadable(ggo.gbm.BP,'org.Hs.eg.db', 'ENTREZID')

#gbm gsea GO up
ggo.gbm.up <- ggo.gbm.BP[which(ggo.gbm.BP$NES > 1),]
head(ggo.gbm.up)
##                    ID                          Description setSize
## GO:0099537 GO:0099537             trans-synaptic signaling     279
## GO:0099536 GO:0099536                   synaptic signaling     284
## GO:0007268 GO:0007268       chemical synaptic transmission     276
## GO:0098916 GO:0098916 anterograde trans-synaptic signaling     276
## GO:0022008 GO:0022008                         neurogenesis     500
## GO:0048699 GO:0048699                generation of neurons     477
##            enrichmentScore      NES       pvalue     p.adjust      qvalues rank
## GO:0099537       0.4869365 4.007866 1.466799e-37 1.372923e-34 9.433831e-35 1321
## GO:0099536       0.4834176 3.977261 9.582432e-37 6.726867e-34 4.622262e-34 1321
## GO:0007268       0.4917486 4.037896 2.352824e-36 9.438185e-34 6.485303e-34 1321
## GO:0098916       0.4917486 4.037896 2.352824e-36 9.438185e-34 6.485303e-34 1321
## GO:0022008       0.3935911 3.510836 4.508413e-36 1.406625e-33 9.665405e-34  956
## GO:0048699       0.3924340 3.470503 4.787652e-35 1.034133e-32 7.105884e-33  956
##                              leading_edge
## GO:0099537 tags=61%, list=27%, signal=47%
## GO:0099536 tags=61%, list=27%, signal=47%
## GO:0007268 tags=62%, list=27%, signal=47%
## GO:0098916 tags=62%, list=27%, signal=47%
## GO:0022008 tags=42%, list=20%, signal=37%
## GO:0048699 tags=42%, list=20%, signal=37%
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    core_enrichment
## GO:0099537                                                                                                                                                                                                                 PLP1/CACNG7/SLC1A2/GRIA2/ADCY8/NR2E1/GRIA1/ATP1A2/KCNQ2/TNR/IGSF11/SEZ6/NLGN1/SLC1A3/PTN/TRIM9/CNTN2/SNCB/TUBB2B/NOVA1/RPH3A/GABBR2/NRXN1/S100B/RIMS4/SNAP25/LGI1/FAM107A/CSPG5/GRID2/CNTNAP4/SORCS3/GRIK3/CNR1/KCNJ10/GRM3/CAMK2B/MAPT/ARC/NTRK2/CHRNA9/PDYN/SHISA7/BCHE/RIT2/SYT6/CDH2/DTNA/LYPD1/NLGN3/GABRA1/KIF5A/GRIK4/GAD2/GRIK5/CACNG4/PCDH8/CYP46A1/SLC6A1/JPH4/CNIH2/WNT7A/NTNG1/RIC3/LRRC4C/ADGRB1/CHRNA4/HAP1/CAMK2A/GRIK2/GRIK1/KCND2/GABRG1/DLGAP1/CX3CR1/LRRTM2/TMEM108/CACNA1G/NETO1/NLGN4X/SYT11/GABRA5/DGKB/NRG3/SLC17A7/GABRQ/SLC24A2/SV2A/PHF24/GABRG2/FGF14/MAP1B/ADORA1/SYT9/KCNB1/SYT4/SLC32A1/NPY/INSYN1/GABRA3/KCNN1/NPTX1/SLC8A3/CACNG3/FGF12/SLITRK5/SYT3/CELF4/GRIN2A/PTCHD1/EFNB3/SCN2B/SYN2/KCNA1/NRXN2/CHRNB2/DCC/APBA2/NLGN4Y/ERC2/INSYN2A/NEUROD2/RIMS2/GLRB/SLC17A6/STXBP5L/SLC4A10/NPTXR/SLC12A5/SHISA9/SYT5/RIMS1/AGT/LRRC4/STX1B/UNC13A/HRH3/NPY2R/BSN/CACNB4/MPP2/SYNGR1/DLG2/JPH3/LYNX1/SLC1A6/GRM5/SYP/UNC13C/APOE/CACNA1A/LRRTM1/SHANK1/SYT12/P2RX6/AMPH/GRID1/PTPRS/CACNG8/PCDHB6/GRM1/MAP1A/CDH8/VGF/GABRB3/ADRA1A/DGKI/PPFIA4/MAPK8IP2/CUX2
## GO:0099536                                                                                                                                                                                                       PLP1/CACNG7/SLC1A2/GRIA2/ADCY8/NR2E1/GRIA1/ATP1A2/KCNQ2/TNR/IGSF11/SEZ6/NLGN1/SLC1A3/PTN/TRIM9/CNTN2/SNCB/TUBB2B/NOVA1/RPH3A/GABBR2/NRXN1/S100B/RIMS4/SNAP25/LGI1/FAM107A/CSPG5/GRID2/CNTNAP4/SORCS3/GRIK3/CNR1/KCNJ10/GRM3/CAMK2B/MAPT/ARC/NTRK2/CHRNA9/PDYN/SHISA7/BCHE/RIT2/SYT6/CDH2/DTNA/LYPD1/NLGN3/GABRA1/KIF5A/GRIK4/GAD2/GRIK5/CACNG4/PCDH8/CYP46A1/SLC6A1/JPH4/CNIH2/WNT7A/NTNG1/RIC3/LRRC4C/ADGRB1/CHRNA4/HAP1/CAMK2A/GRIK2/GRIK1/KCND2/GABRG1/DLGAP1/CX3CR1/RGS8/LRRTM2/TMEM108/CACNA1G/NETO1/NLGN4X/SYT11/GABRA5/DGKB/NRG3/SLC17A7/GABRQ/SLC24A2/SV2A/PHF24/GABRG2/FGF14/MAP1B/ADORA1/SYT9/KCNB1/SYT4/SLC32A1/NPY/INSYN1/GABRA3/KCNN1/NPTX1/SLC8A3/CACNG3/FGF12/SLITRK5/SYT3/CELF4/GRIN2A/PTCHD1/EFNB3/SCN2B/SYN2/KCNA1/NRXN2/CHRNB2/DCC/APBA2/NLGN4Y/ERC2/LY6H/INSYN2A/NEUROD2/RIMS2/GLRB/SLC17A6/STXBP5L/SLC4A10/NPTXR/SLC12A5/SHISA9/SYT5/RIMS1/AGT/LRRC4/STX1B/UNC13A/HRH3/NPY2R/BSN/CACNB4/MPP2/SYNGR1/DLG2/JPH3/LYNX1/SLC1A6/GRM5/SYP/UNC13C/APOE/CACNA1A/LRRTM1/SHANK1/SYT12/P2RX6/AMPH/GRID1/PTPRS/CACNG8/PCDHB6/GRM1/MAP1A/CDH8/VGF/GABRB3/ADRA1A/DGKI/PPFIA4/MAPK8IP2/CUX2
## GO:0007268                                                                                                                                                                                                                 PLP1/CACNG7/SLC1A2/GRIA2/ADCY8/NR2E1/GRIA1/ATP1A2/KCNQ2/TNR/IGSF11/SEZ6/NLGN1/SLC1A3/PTN/TRIM9/CNTN2/SNCB/TUBB2B/NOVA1/RPH3A/GABBR2/NRXN1/S100B/RIMS4/SNAP25/LGI1/FAM107A/CSPG5/GRID2/CNTNAP4/SORCS3/GRIK3/CNR1/KCNJ10/GRM3/CAMK2B/MAPT/ARC/NTRK2/CHRNA9/PDYN/SHISA7/BCHE/RIT2/SYT6/CDH2/DTNA/LYPD1/NLGN3/GABRA1/KIF5A/GRIK4/GAD2/GRIK5/CACNG4/PCDH8/CYP46A1/SLC6A1/JPH4/CNIH2/WNT7A/NTNG1/RIC3/LRRC4C/ADGRB1/CHRNA4/HAP1/CAMK2A/GRIK2/GRIK1/KCND2/GABRG1/DLGAP1/CX3CR1/LRRTM2/TMEM108/CACNA1G/NETO1/NLGN4X/SYT11/GABRA5/DGKB/NRG3/SLC17A7/GABRQ/SLC24A2/SV2A/PHF24/GABRG2/FGF14/MAP1B/ADORA1/SYT9/KCNB1/SYT4/SLC32A1/NPY/INSYN1/GABRA3/KCNN1/NPTX1/SLC8A3/CACNG3/FGF12/SLITRK5/SYT3/CELF4/GRIN2A/PTCHD1/EFNB3/SCN2B/SYN2/KCNA1/NRXN2/CHRNB2/DCC/APBA2/NLGN4Y/ERC2/INSYN2A/NEUROD2/RIMS2/GLRB/SLC17A6/STXBP5L/SLC4A10/NPTXR/SLC12A5/SHISA9/SYT5/RIMS1/AGT/LRRC4/STX1B/UNC13A/HRH3/NPY2R/BSN/CACNB4/MPP2/SYNGR1/DLG2/JPH3/LYNX1/SLC1A6/GRM5/SYP/UNC13C/APOE/CACNA1A/LRRTM1/SHANK1/SYT12/P2RX6/AMPH/GRID1/PTPRS/CACNG8/PCDHB6/GRM1/MAP1A/CDH8/VGF/GABRB3/ADRA1A/DGKI/PPFIA4/MAPK8IP2/CUX2
## GO:0098916                                                                                                                                                                                                                 PLP1/CACNG7/SLC1A2/GRIA2/ADCY8/NR2E1/GRIA1/ATP1A2/KCNQ2/TNR/IGSF11/SEZ6/NLGN1/SLC1A3/PTN/TRIM9/CNTN2/SNCB/TUBB2B/NOVA1/RPH3A/GABBR2/NRXN1/S100B/RIMS4/SNAP25/LGI1/FAM107A/CSPG5/GRID2/CNTNAP4/SORCS3/GRIK3/CNR1/KCNJ10/GRM3/CAMK2B/MAPT/ARC/NTRK2/CHRNA9/PDYN/SHISA7/BCHE/RIT2/SYT6/CDH2/DTNA/LYPD1/NLGN3/GABRA1/KIF5A/GRIK4/GAD2/GRIK5/CACNG4/PCDH8/CYP46A1/SLC6A1/JPH4/CNIH2/WNT7A/NTNG1/RIC3/LRRC4C/ADGRB1/CHRNA4/HAP1/CAMK2A/GRIK2/GRIK1/KCND2/GABRG1/DLGAP1/CX3CR1/LRRTM2/TMEM108/CACNA1G/NETO1/NLGN4X/SYT11/GABRA5/DGKB/NRG3/SLC17A7/GABRQ/SLC24A2/SV2A/PHF24/GABRG2/FGF14/MAP1B/ADORA1/SYT9/KCNB1/SYT4/SLC32A1/NPY/INSYN1/GABRA3/KCNN1/NPTX1/SLC8A3/CACNG3/FGF12/SLITRK5/SYT3/CELF4/GRIN2A/PTCHD1/EFNB3/SCN2B/SYN2/KCNA1/NRXN2/CHRNB2/DCC/APBA2/NLGN4Y/ERC2/INSYN2A/NEUROD2/RIMS2/GLRB/SLC17A6/STXBP5L/SLC4A10/NPTXR/SLC12A5/SHISA9/SYT5/RIMS1/AGT/LRRC4/STX1B/UNC13A/HRH3/NPY2R/BSN/CACNB4/MPP2/SYNGR1/DLG2/JPH3/LYNX1/SLC1A6/GRM5/SYP/UNC13C/APOE/CACNA1A/LRRTM1/SHANK1/SYT12/P2RX6/AMPH/GRID1/PTPRS/CACNG8/PCDHB6/GRM1/MAP1A/CDH8/VGF/GABRB3/ADRA1A/DGKI/PPFIA4/MAPK8IP2/CUX2
## GO:0022008 PTPRZ1/FABP7/OLIG1/GPM6A/OLIG2/CTNND2/PLP1/CACNG7/ASTN1/SALL3/DPYSL5/FOXG1/GAP43/SOX2/MT3/POU3F2/VXN/ATP1B2/DNER/ASCL1/NR2E1/MAG/CRB1/BRINP2/STMN4/TNR/KIF1A/FUT9/ATP2B2/SLITRK2/RND2/SEZ6/ATCAY/GPM6B/NLGN1/SLC1A3/PTN/DSCAM/DCX/CNTN2/TUBB2B/ERBB4/MAP2/SLITRK3/NRXN1/S100B/MMD2/SNAP25/SLC39A12/CTNNA2/LGI1/LHX2/CSPG5/GRID2/CLU/NKX2-2/CNR1/NRCAM/KCNJ10/SLITRK1/CAMK2B/NTRK3/MAPT/CEND1/RPE65/CNTN1/C1QL1/ADGRB3/ARC/DLL3/TMEM132E/NKX6-2/NTRK2/DCLK1/BCHE/RIT2/PLPPR5/CDH2/OMG/NCAM1/NLGN3/ACTL6B/RORB/SH3GL3/SOX8/BRINP3/SOX3/P2RY12/SLIT1/KIF5A/IRX1/SH3GL2/EPHA5/FEZ1/OPALIN/NKX2-5/UCHL1/WNT7A/NTNG1/EN1/EMX2/TENM1/GSX1/GPR37L1/CDH4/LRRC4C/KIF5C/ADGRB1/GSX2/OTP/DCLK2/HAP1/CAMK2A/SOX11/MYT1L/LHX9/ZNF365/DPYSL4/BMPR1B/CX3CR1/TMEM108/CHL1/NLGN4X/ALK/GABRA5/OPCML/SRRM4/NRG3/RGMA/ZDHHC15/DRAXIN/BEND6/MAP6/TBR1/NDRG4/SALL1/SCRT1/MAP1B/CCK/DOK5/SPP1/ADGRL3/VWC2L/MDGA2/SYT4/NPY/RNF165/DLX1/LRP2/NCAM2/RNF112/NPTX1/NEFL/SLC8A3/SCRT2/GPRC5B/SLITRK5/NYAP1/CRMP1/SYT3/GRIN2A/SPTBN4/ADGRV1/NKX6-1/SHOX2/EFNB3/HOXC10/DISP3/KCNA1/CHRNB2/CDK5R2/UNC5D/VAX2/DCC/NEUROD2/RIMS2/NEUROD1/NAP1L2/MYO16/PLXNB3/GPR173/INSM1/SLC4A10/PAK3/SLC12A5/DMRTA2/KLF15/SEMA3E/CSMD3/ARX/TMEFF1/SEMA5B/WASF3/RIMS1/KNDC1/GPR17/OLFM1/AGT/NEXMIF/BRINP1/STX1B/UNC13A/HEY1/MAGI2/ID4/DCT/EFHD1/SOX5/ETV1
## GO:0048699                                                        PTPRZ1/OLIG1/GPM6A/OLIG2/CTNND2/PLP1/CACNG7/ASTN1/SALL3/DPYSL5/FOXG1/GAP43/SOX2/MT3/POU3F2/VXN/ATP1B2/DNER/ASCL1/NR2E1/MAG/CRB1/BRINP2/STMN4/TNR/KIF1A/FUT9/ATP2B2/SLITRK2/RND2/SEZ6/ATCAY/GPM6B/NLGN1/SLC1A3/PTN/DSCAM/DCX/CNTN2/TUBB2B/ERBB4/MAP2/SLITRK3/NRXN1/S100B/MMD2/SNAP25/SLC39A12/CTNNA2/LGI1/LHX2/GRID2/NKX2-2/CNR1/NRCAM/SLITRK1/CAMK2B/NTRK3/MAPT/CEND1/RPE65/CNTN1/C1QL1/ADGRB3/ARC/DLL3/TMEM132E/NKX6-2/NTRK2/DCLK1/BCHE/RIT2/PLPPR5/CDH2/OMG/NCAM1/NLGN3/ACTL6B/RORB/SH3GL3/SOX8/BRINP3/SOX3/P2RY12/SLIT1/KIF5A/IRX1/SH3GL2/EPHA5/FEZ1/OPALIN/NKX2-5/UCHL1/WNT7A/NTNG1/EN1/EMX2/TENM1/GSX1/GPR37L1/CDH4/LRRC4C/KIF5C/ADGRB1/GSX2/OTP/DCLK2/HAP1/CAMK2A/SOX11/MYT1L/LHX9/ZNF365/DPYSL4/BMPR1B/CX3CR1/TMEM108/CHL1/NLGN4X/ALK/GABRA5/OPCML/SRRM4/NRG3/RGMA/ZDHHC15/DRAXIN/BEND6/MAP6/TBR1/NDRG4/SALL1/SCRT1/MAP1B/CCK/DOK5/SPP1/ADGRL3/VWC2L/MDGA2/SYT4/NPY/RNF165/DLX1/LRP2/NCAM2/RNF112/NPTX1/NEFL/SCRT2/GPRC5B/SLITRK5/NYAP1/CRMP1/SYT3/SPTBN4/ADGRV1/NKX6-1/SHOX2/EFNB3/HOXC10/DISP3/KCNA1/CHRNB2/CDK5R2/UNC5D/VAX2/DCC/NEUROD2/RIMS2/NEUROD1/NAP1L2/MYO16/PLXNB3/GPR173/INSM1/SLC4A10/PAK3/SLC12A5/DMRTA2/SEMA3E/CSMD3/ARX/TMEFF1/SEMA5B/RIMS1/KNDC1/OLFM1/AGT/NEXMIF/BRINP1/STX1B/UNC13A/HEY1/MAGI2/ID4/DCT/EFHD1/SOX5/ETV1
ggo.gbm.up <- id.table(ggo.gbm.up)

#gbm gsea GO down
ggo.gbm.dn <- ggo.gbm.BP[which(ggo.gbm.BP$NES < -1),]
head(ggo.gbm.dn)
##                    ID
## GO:0006955 GO:0006955
## GO:0002250 GO:0002250
## GO:0006959 GO:0006959
## GO:0002455 GO:0002455
## GO:0006958 GO:0006958
## GO:0002429 GO:0002429
##                                                                   Description
## GO:0006955                                                    immune response
## GO:0002250                                           adaptive immune response
## GO:0006959                                            humoral immune response
## GO:0002455     humoral immune response mediated by circulating immunoglobulin
## GO:0006958                           complement activation, classical pathway
## GO:0002429 immune response-activating cell surface receptor signaling pathway
##            setSize enrichmentScore       NES       pvalue     p.adjust
## GO:0006955     451      -0.4515475 -3.937290 8.385004e-46 2.354509e-42
## GO:0002250     182      -0.5843009 -4.355833 2.745566e-39 3.854775e-36
## GO:0006959     141      -0.6258169 -4.423845 1.675515e-36 9.409694e-34
## GO:0002455      91      -0.7143855 -4.546209 3.499010e-36 1.228152e-33
## GO:0006958      90      -0.7209518 -4.581309 6.494702e-36 1.823712e-33
## GO:0002429     129      -0.6323243 -4.395792 3.767122e-35 8.815065e-33
##                 qvalues rank                   leading_edge
## GO:0006955 1.617864e-42 1678 tags=71%, list=35%, signal=51%
## GO:0002250 2.648749e-36 1246 tags=76%, list=26%, signal=59%
## GO:0006959 6.465725e-34 1090 tags=75%, list=23%, signal=60%
## GO:0002455 8.439059e-34  885 tags=82%, list=18%, signal=69%
## GO:0006958 1.253136e-33  885 tags=83%, list=18%, signal=69%
## GO:0002429 6.057135e-33  705 tags=77%, list=15%, signal=67%
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      core_enrichment
## GO:0006955 TNFSF9/CD3E/GRAP2/MYO1C/B4GALT1/XCR1/THBS1/PTGER4/IL1R2/SRPK1/CD1E/NAPRT/CCR4/HLA-G/RHOF/SLC26A6/TCF7/CD40LG/MVP/LAMP3/TNFSF10/LGALS3/EMP2/FASLG/TRBV28/ANPEP/FFAR2/LTB/SIGLEC15/CFB/IGHD/NLRP6/CD3G/SLAMF1/CXCL13/TRBV20-1/LAX1/CD3D/STXBP2/ZBP1/TMEM63A/CXCL9/UBASH3A/LTBR/COL3A1/CXCR6/GCH1/BMX/PF4/KLK7/STAT6/ELF4/F2/IGKV1-39/CD46/IGLV5-37/PLA2G2A/CNN2/IFI27/TNFRSF11A/CD1A/CEACAM3/CCL19/SERPINB1/PGC/MCOLN2/SEMA3C/IFITM1/WFDC2/COL1A1/PLA2G2D/ZC3H12A/IGHV4-4/NBEAL2/TRPM4/FZD5/TEC/DNASE1L3/RIPK3/ICOS/MME/NCR3LG1/CTSV/FLNB/CCL22/IL1RL2/LYZ/IRF4/PLA2G3/FCRL3/SLAMF7/LCK/IGKV2-29/IGKV1D-17/PLA2G2F/IGKV2D-24/CCL14/CSF2/LY75/MUC1/ADAMDEC1/GCSAM/MS4A1/IGKV1D-13/PI3/PAWR/IGKV2-30/TNFRSF13B/FGB/CPN1/ALOX15/IGKV1D-43/IL32/PKP1/AGPAT2/GZMB/CLC/SEMG1/INAVA/IDO1/IGLV3-16/UBD/CD55/CCL13/IGHV3-7/IGKV6D-21/CCL18/CRACR2A/AMBP/IGHV1-45/PLAC8/CD79A/ENPP3/TNFRSF17/CXCL3/IGKV5-2/CTSG/F2RL1/IGHV1-3/IGHV3-35/ASS1/IGHV2-70D/POU2AF1/RAET1L/IGKV1-12/FGA/CXCR3/SRMS/IGHV6-1/IGKV3D-15/IGLV9-49/TNK1/PPARG/IL2RG/KRT6A/IGLV1-36/IGLV4-60/JUP/CD24/IGLV7-46/SKAP1/IGLV5-45/KCNN4/IGHV3-20/MS4A2/KLK3/IGHV2-70/IGKV6-21/CLDN1/IGKV3D-11/IGHV3-64/TNFSF15/IGKV1D-8/IGLC7/IL23R/IGLV3-27/IGKV3-7/IGKV1-8/IGLV10-54/IGLV1-47/CXCL1/IGLV7-43/IGHV2-5/IGLV1-51/IGHV3-13/IGHV1-58/TCN1/MUC20/IGHV4-61/IGHV3-66/C4BPA/FCAMR/LRG1/IGHV3-43/RAB17/IGLV2-18/IGKV2D-29/MNX1/IGKV2-24/FRK/STYK1/IGKV3D-20/CD177/CCL20/BTNL8/IGLV3-9/CR2/IGHV2-26/SPINK5/DEFB1/TNFSF11/IGHM/IGHV1-69/IGKV1-27/IGLV8-61/IGHV7-81/CCL28/IGHV3-53/TDGF1/IGKV1-6/MUC12/IGHV4-28/IGHV3-33/IGLV1-44/IGLV3-10/IGHV4-34/IGHV3-48/PRSS3/IGLV1-40/TRIM29/SMPDL3B/IGLC3/IGHV3-73/REG1B/IGHG3/IGLV2-11/IGLV2-14/PTK6/IGKV1-17/IGKV1-9/IGHV3-72/IGHV1-24/IGLV4-69/IGLV2-8/IGLV6-57/IGKV1-16/RORC/PRSS2/EREG/IGLV3-19/MUC4/IGHV3-30/IGHV1-69D/IGHV3-21/IGHG2/IRF6/IGHV3-74/IGLL5/IGKV3-20/IGHV3-15/IGHV3-49/IGHG1/IGLV3-21/MYB/IGLC2/IGKV3-15/IGKV1-5/C4BPB/IGLV2-23/IGLV3-25/IGKV4-1/ANXA3/IGHV3-11/IGHV3-23/IGHG4/TRIM40/IGHV4-59/IGHV4-39/JCHAIN/IGHV1-18/IGKC/DEFA5/DEFA6/IGHV5-51/DSP/MUC5AC/SLC27A2/NKX2-3/CCL11/TRIM10/IGHA1/PCK1/MST1R/MMP12/BTNL3/DMBT1/CEACAM1/CCL15/CCL21/MUC3A/IGHA2/REG3A/CCL24/REG1A/COL17A1/HHLA2/S100P/ITLN1/MUC17/GCNT3/OLFM4/MUC5B/AOC1/TRIM31/TRIM15/LCN2/CDH17/PIGR/MUC13/MUC2/CEACAM6
## GO:0002250                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              STAT6/IGKV1-39/CD46/IGLV5-37/TNFRSF11A/CD1A/CCL19/MCOLN2/ZC3H12A/IGHV4-4/TRPM4/FZD5/TEC/RIPK3/IRF4/SLAMF7/IGKV2-29/IGKV1D-17/IGKV2D-24/IGKV1D-13/IGKV2-30/TNFRSF13B/FGB/ALOX15/IGKV1D-43/CLC/IGLV3-16/CD55/IGHV3-7/IGKV6D-21/CRACR2A/IGHV1-45/CD79A/TNFRSF17/IGKV5-2/IGHV1-3/IGHV3-35/IGHV2-70D/IGKV1-12/FGA/IGHV6-1/IGKV3D-15/IGLV9-49/IGLV1-36/IGLV4-60/IGLV7-46/SKAP1/IGLV5-45/IGHV3-20/IGHV2-70/IGKV6-21/IGKV3D-11/IGHV3-64/IGKV1D-8/IGLC7/IL23R/IGLV3-27/IGKV3-7/IGKV1-8/IGLV10-54/IGLV1-47/IGLV7-43/IGHV2-5/IGLV1-51/IGHV3-13/IGHV1-58/IGHV4-61/IGHV3-66/C4BPA/FCAMR/IGHV3-43/IGLV2-18/IGKV2D-29/IGKV2-24/IGKV3D-20/BTNL8/IGLV3-9/CR2/IGHV2-26/IGHM/IGHV1-69/IGKV1-27/IGLV8-61/IGHV7-81/IGHV3-53/IGKV1-6/IGHV4-28/IGHV3-33/IGLV1-44/IGLV3-10/IGHV4-34/IGHV3-48/IGLV1-40/IGLC3/IGHV3-73/IGHG3/IGLV2-11/IGLV2-14/IGKV1-17/IGKV1-9/IGHV3-72/IGHV1-24/IGLV4-69/IGLV2-8/IGLV6-57/IGKV1-16/RORC/IGLV3-19/IGHV3-30/IGHV1-69D/IGHV3-21/IGHG2/IGHV3-74/IGLL5/IGKV3-20/IGHV3-15/IGHV3-49/IGHG1/IGLV3-21/IGLC2/IGKV3-15/IGKV1-5/C4BPB/IGLV2-23/IGLV3-25/IGKV4-1/IGHV3-11/IGHV3-23/IGHG4/IGHV4-59/IGHV4-39/JCHAIN/IGHV1-18/IGKC/IGHV5-51/IGHA1/CEACAM1/IGHA2/GCNT3
## GO:0006959                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  MS4A1/PI3/IGKV2-30/FGB/CPN1/SEMG1/CD55/CCL13/IGHV3-7/IGHV1-45/CXCL3/IGKV5-2/CTSG/IGHV1-3/IGHV3-35/IGHV2-70D/POU2AF1/IGKV1-12/FGA/IGHV6-1/KRT6A/IGHV3-20/KLK3/IGHV2-70/IGKV3D-11/IGHV3-64/IGLC7/IGLV3-27/IGLV1-47/CXCL1/IGLV7-43/IGHV2-5/IGLV1-51/IGHV3-13/IGHV1-58/IGHV4-61/IGHV3-66/C4BPA/IGHV3-43/MNX1/IGKV3D-20/CR2/IGHV2-26/SPINK5/DEFB1/IGHM/IGHV1-69/IGHV7-81/IGHV3-53/IGHV4-28/IGHV3-33/IGLV1-44/IGHV4-34/IGHV3-48/PRSS3/IGLV1-40/IGLC3/IGHV3-73/REG1B/IGHG3/IGLV2-11/IGLV2-14/IGKV1-17/IGHV3-72/IGHV1-24/IGLV2-8/IGLV6-57/IGKV1-16/PRSS2/IGLV3-19/IGHV3-30/IGHV1-69D/IGHV3-21/IGHG2/IGHV3-74/IGLL5/IGKV3-20/IGHV3-15/IGHV3-49/IGHG1/IGLV3-21/IGLC2/IGKV3-15/IGKV1-5/C4BPB/IGLV2-23/IGLV3-25/IGKV4-1/IGHV3-11/IGHV3-23/IGHG4/IGHV4-59/IGHV4-39/JCHAIN/IGHV1-18/IGKC/DEFA5/DEFA6/IGHV5-51/IGHA1/DMBT1/IGHA2/REG3A/REG1A/ITLN1/LCN2
## GO:0002455                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            IGKV5-2/IGHV1-3/IGHV3-35/IGHV2-70D/IGKV1-12/IGHV6-1/IGHV3-20/IGHV2-70/IGKV3D-11/IGHV3-64/IGLC7/IGLV3-27/IGLV1-47/IGLV7-43/IGHV2-5/IGLV1-51/IGHV3-13/IGHV1-58/IGHV4-61/IGHV3-66/C4BPA/IGHV3-43/IGKV3D-20/CR2/IGHV2-26/IGHM/IGHV1-69/IGHV7-81/IGHV3-53/IGHV4-28/IGHV3-33/IGLV1-44/IGHV4-34/IGHV3-48/IGLV1-40/IGLC3/IGHV3-73/IGHG3/IGLV2-11/IGLV2-14/IGKV1-17/IGHV3-72/IGHV1-24/IGLV2-8/IGLV6-57/IGKV1-16/IGLV3-19/IGHV3-30/IGHV1-69D/IGHV3-21/IGHG2/IGHV3-74/IGLL5/IGKV3-20/IGHV3-15/IGHV3-49/IGHG1/IGLV3-21/IGLC2/IGKV3-15/IGKV1-5/C4BPB/IGLV2-23/IGLV3-25/IGKV4-1/IGHV3-11/IGHV3-23/IGHG4/IGHV4-59/IGHV4-39/IGHV1-18/IGKC/IGHV5-51/IGHA1/IGHA2
## GO:0006958                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            IGKV5-2/IGHV1-3/IGHV3-35/IGHV2-70D/IGKV1-12/IGHV6-1/IGHV3-20/IGHV2-70/IGKV3D-11/IGHV3-64/IGLC7/IGLV3-27/IGLV1-47/IGLV7-43/IGHV2-5/IGLV1-51/IGHV3-13/IGHV1-58/IGHV4-61/IGHV3-66/C4BPA/IGHV3-43/IGKV3D-20/CR2/IGHV2-26/IGHM/IGHV1-69/IGHV7-81/IGHV3-53/IGHV4-28/IGHV3-33/IGLV1-44/IGHV4-34/IGHV3-48/IGLV1-40/IGLC3/IGHV3-73/IGHG3/IGLV2-11/IGLV2-14/IGKV1-17/IGHV3-72/IGHV1-24/IGLV2-8/IGLV6-57/IGKV1-16/IGLV3-19/IGHV3-30/IGHV1-69D/IGHV3-21/IGHG2/IGHV3-74/IGLL5/IGKV3-20/IGHV3-15/IGHV3-49/IGHG1/IGLV3-21/IGLC2/IGKV3-15/IGKV1-5/C4BPB/IGLV2-23/IGLV3-25/IGKV4-1/IGHV3-11/IGHV3-23/IGHG4/IGHV4-59/IGHV4-39/IGHV1-18/IGKC/IGHV5-51/IGHA1/IGHA2
## GO:0002429                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    FCRL3/LCK/IGKV2-29/MUC1/GCSAM/MS4A1/PAWR/IGKV2-30/IGHV3-7/IGHV1-45/CD79A/IGKV5-2/IGHV1-3/IGHV3-35/IGHV2-70D/IGKV1-12/IGHV6-1/SKAP1/KCNN4/IGHV3-20/IGHV2-70/IGKV3D-11/IGHV3-64/IGLC7/IGLV3-27/IGLV1-47/IGLV7-43/IGHV2-5/IGLV1-51/IGHV3-13/IGHV1-58/MUC20/IGHV4-61/IGHV3-66/IGHV3-43/IGKV3D-20/BTNL8/CR2/IGHV2-26/IGHM/IGHV1-69/IGHV7-81/IGHV3-53/MUC12/IGHV4-28/IGHV3-33/IGLV1-44/IGHV4-34/IGHV3-48/IGLV1-40/IGLC3/IGHV3-73/IGHG3/IGLV2-11/IGLV2-14/IGKV1-17/IGHV3-72/IGHV1-24/IGLV2-8/IGLV6-57/IGKV1-16/IGLV3-19/MUC4/IGHV3-30/IGHV1-69D/IGHV3-21/IGHG2/IGHV3-74/IGLL5/IGKV3-20/IGHV3-15/IGHV3-49/IGHG1/IGLV3-21/IGLC2/IGKV3-15/IGKV1-5/IGLV2-23/IGLV3-25/IGKV4-1/IGHV3-11/IGHV3-23/IGHG4/IGHV4-59/IGHV4-39/IGHV1-18/IGKC/IGHV5-51/MUC5AC/IGHA1/BTNL3/CEACAM1/MUC3A/IGHA2/HHLA2/MUC17/MUC5B/MUC13/MUC2
ggo.gbm.dn <- id.table(ggo.gbm.dn)

### LGG
## BIOLOGICAL PROCESS (BP)
# GSEA GO BP
ggo.lgg.BP <- gseGO(geneList = c(lgg.up.gene,
                                 lgg.dn.gene),
                    OrgDb = org.Hs.eg.db,
                    ont = "BP",
                    pvalueCutoff = 0.05,
                    eps = 0,
                    verbose = FALSE)
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
ggo.lgg.BP <- setReadable(ggo.lgg.BP, 'org.Hs.eg.db', 'ENTREZID')

#lgg gsea GO up
ggo.lgg.up <- ggo.lgg.BP[which(ggo.lgg.BP$NES > 1),]
head(ggo.lgg.up)
##                    ID                                  Description setSize
## GO:0099536 GO:0099536                           synaptic signaling     352
## GO:0099537 GO:0099537                     trans-synaptic signaling     347
## GO:0007268 GO:0007268               chemical synaptic transmission     344
## GO:0098916 GO:0098916         anterograde trans-synaptic signaling     344
## GO:0050804 GO:0050804 modulation of chemical synaptic transmission     216
## GO:0099177 GO:0099177       regulation of trans-synaptic signaling     217
##            enrichmentScore      NES       pvalue     p.adjust      qvalues rank
## GO:0099536       0.5477254 4.318046 4.996823e-59 1.735397e-55 1.097723e-55 1365
## GO:0099537       0.5472457 4.309562 3.059109e-58 5.312143e-55 3.360190e-55 1347
## GO:0007268       0.5479157 4.306684 1.986962e-57 1.725179e-54 1.091260e-54 1250
## GO:0098916       0.5479157 4.306684 1.986962e-57 1.725179e-54 1.091260e-54 1250
## GO:0050804       0.5398687 3.945595 1.258054e-35 1.560436e-33 9.870523e-34 1242
## GO:0099177       0.5377941 3.942770 1.472253e-35 1.669964e-33 1.056334e-33 1242
##                              leading_edge
## GO:0099536 tags=59%, list=22%, signal=49%
## GO:0099537 tags=59%, list=22%, signal=48%
## GO:0007268 tags=57%, list=20%, signal=48%
## GO:0098916 tags=57%, list=20%, signal=48%
## GO:0050804 tags=56%, list=20%, signal=46%
## GO:0099177 tags=56%, list=20%, signal=46%
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   core_enrichment
## GO:0099536 TNR/PLP1/GRIA2/SLC1A2/CACNG7/ADCY8/GRIA1/KCNQ2/ATP1A2/GABBR2/NRXN1/GABRG1/CNTNAP4/SEZ6/SHISA7/GRID2/SNCB/CHRNA4/SORCS3/NLGN1/KCNJ10/CNTN2/SNAP25/MAPT/NTRK2/IGSF11/TRIM9/FAM107A/RPH3A/JPH4/NR2E1/CSPG5/NOVA1/KCNB1/NRG3/GRM3/RIMS4/SLC1A3/GABRA1/SYT6/KIF5A/SLC6A1/GABRG2/DLGAP1/GRIK4/NETO1/GABRA3/ADGRB1/GAD2/GRIK3/JPH3/SLC1A6/CAMK2B/TUBB2B/KCND2/RIMS2/LGI1/CACNG2/SYT9/SLITRK5/GRIK2/CACNG4/HRH3/BCHE/LRRC4C/SLC8A3/GABRA5/PTN/NLGN3/CYP46A1/S100B/DGKB/CUX2/DTNA/RIC3/CAMK2A/CACNG3/CELF4/LRRTM2/SYT4/SLC24A2/SLC17A7/GLRA3/FGF12/GABRB3/PHF24/GRIN2A/GRM5/WNT7A/SCN2B/GRIK5/PDYN/KCNN1/UNC13A/SLC32A1/NPY/CDH2/INSYN1/PCDH8/RIMS1/CHRNB2/UNC13C/RIT2/NRXN2/TMEM108/SYT11/FGF14/CNR1/KCNA1/SYN2/STXBP5L/CNIH2/BSN/STX1B/GABRQ/LYPD1/SV2A/SYT3/NPTX1/DLG2/CPLX2/DCC/ADRA1A/ARC/HAP1/LY6H/SLC12A5/CACNA1A/LRRC4/ERC2/SHANK1/GRM1/MAP1B/NEUROD2/CX3CR1/NLGN4X/IL1RAPL1/APBA2/LRRTM1/SYP/P2RX6/GRID1/SLC17A6/SYNGR1/NPTXR/CACNA1G/RGS8/DLGAP2/DGKI/SHISA9/CACNG8/SLC8A2/CACNB4/SLC4A10/MAP1A/GLRB/LYNX1/PPFIA2/CACNA1E/SYT5/MAPK8IP2/NTNG1/CACNA1B/EFNB3/CDH8/SYN1/GAD1/MPP2/TMOD2/HTR5A/HTR2C/CLSTN2/APOE/PTCHD1/KCNIP2/DLGAP3/GABRG3/HTR1A/ADORA1/SLC17A8/P2RX7/GJD2/AMPH/KCNK3/AGT/EPHB1/CPNE6/INSYN2A/PTPRS/SYT12/GABRB1/SHC3/GRIK1/NTNG2/GRIN2C/SHISA6/RASGRF1/KCNQ3/PCDHB5/CRHBP/NLGN2/NOS1/GRIN1/DRP2/SV2B/SNCA/CDK5R1/ABAT
## GO:0099537                            TNR/PLP1/GRIA2/SLC1A2/CACNG7/ADCY8/GRIA1/KCNQ2/ATP1A2/GABBR2/NRXN1/GABRG1/CNTNAP4/SEZ6/SHISA7/GRID2/SNCB/CHRNA4/SORCS3/NLGN1/KCNJ10/CNTN2/SNAP25/MAPT/NTRK2/IGSF11/TRIM9/FAM107A/RPH3A/JPH4/NR2E1/CSPG5/NOVA1/KCNB1/NRG3/GRM3/RIMS4/SLC1A3/GABRA1/SYT6/KIF5A/SLC6A1/GABRG2/DLGAP1/GRIK4/NETO1/GABRA3/ADGRB1/GAD2/GRIK3/JPH3/SLC1A6/CAMK2B/TUBB2B/KCND2/RIMS2/LGI1/CACNG2/SYT9/SLITRK5/GRIK2/CACNG4/HRH3/BCHE/LRRC4C/SLC8A3/GABRA5/PTN/NLGN3/CYP46A1/S100B/DGKB/CUX2/DTNA/RIC3/CAMK2A/CACNG3/CELF4/LRRTM2/SYT4/SLC24A2/SLC17A7/GLRA3/FGF12/GABRB3/PHF24/GRIN2A/GRM5/WNT7A/SCN2B/GRIK5/PDYN/KCNN1/UNC13A/SLC32A1/NPY/CDH2/INSYN1/PCDH8/RIMS1/CHRNB2/UNC13C/RIT2/NRXN2/TMEM108/SYT11/FGF14/CNR1/KCNA1/SYN2/STXBP5L/CNIH2/BSN/STX1B/GABRQ/LYPD1/SV2A/SYT3/NPTX1/DLG2/CPLX2/DCC/ADRA1A/ARC/HAP1/SLC12A5/CACNA1A/LRRC4/ERC2/SHANK1/GRM1/MAP1B/NEUROD2/CX3CR1/NLGN4X/IL1RAPL1/APBA2/LRRTM1/SYP/P2RX6/GRID1/SLC17A6/SYNGR1/NPTXR/CACNA1G/DLGAP2/DGKI/SHISA9/CACNG8/SLC8A2/CACNB4/SLC4A10/MAP1A/GLRB/LYNX1/PPFIA2/CACNA1E/SYT5/MAPK8IP2/NTNG1/CACNA1B/EFNB3/CDH8/SYN1/GAD1/MPP2/TMOD2/HTR5A/HTR2C/CLSTN2/APOE/PTCHD1/KCNIP2/DLGAP3/GABRG3/HTR1A/ADORA1/SLC17A8/P2RX7/GJD2/AMPH/KCNK3/AGT/EPHB1/CPNE6/INSYN2A/PTPRS/SYT12/GABRB1/SHC3/GRIK1/NTNG2/GRIN2C/SHISA6/RASGRF1/KCNQ3/PCDHB5/CRHBP/NLGN2/NOS1/GRIN1/SV2B/SNCA
## GO:0007268                                                                             TNR/PLP1/GRIA2/SLC1A2/CACNG7/ADCY8/GRIA1/KCNQ2/ATP1A2/GABBR2/NRXN1/GABRG1/CNTNAP4/SEZ6/SHISA7/GRID2/SNCB/CHRNA4/SORCS3/NLGN1/KCNJ10/CNTN2/SNAP25/MAPT/NTRK2/IGSF11/TRIM9/FAM107A/RPH3A/JPH4/NR2E1/CSPG5/NOVA1/KCNB1/NRG3/GRM3/RIMS4/SLC1A3/GABRA1/SYT6/KIF5A/SLC6A1/GABRG2/DLGAP1/GRIK4/NETO1/GABRA3/ADGRB1/GAD2/GRIK3/JPH3/SLC1A6/CAMK2B/TUBB2B/KCND2/RIMS2/LGI1/CACNG2/SYT9/SLITRK5/GRIK2/CACNG4/HRH3/BCHE/LRRC4C/SLC8A3/GABRA5/PTN/NLGN3/CYP46A1/S100B/DGKB/CUX2/DTNA/RIC3/CAMK2A/CACNG3/CELF4/LRRTM2/SYT4/SLC24A2/SLC17A7/GLRA3/FGF12/GABRB3/PHF24/GRIN2A/GRM5/WNT7A/SCN2B/GRIK5/PDYN/KCNN1/UNC13A/SLC32A1/NPY/CDH2/INSYN1/PCDH8/RIMS1/CHRNB2/UNC13C/RIT2/NRXN2/TMEM108/SYT11/FGF14/CNR1/KCNA1/SYN2/STXBP5L/CNIH2/BSN/STX1B/GABRQ/LYPD1/SV2A/SYT3/NPTX1/DLG2/CPLX2/DCC/ADRA1A/ARC/HAP1/SLC12A5/CACNA1A/LRRC4/ERC2/SHANK1/GRM1/MAP1B/NEUROD2/CX3CR1/NLGN4X/APBA2/LRRTM1/SYP/P2RX6/GRID1/SLC17A6/SYNGR1/NPTXR/CACNA1G/DLGAP2/DGKI/SHISA9/CACNG8/SLC8A2/CACNB4/SLC4A10/MAP1A/GLRB/LYNX1/PPFIA2/CACNA1E/SYT5/MAPK8IP2/NTNG1/CACNA1B/EFNB3/CDH8/SYN1/GAD1/MPP2/TMOD2/HTR5A/HTR2C/CLSTN2/APOE/PTCHD1/KCNIP2/DLGAP3/GABRG3/HTR1A/ADORA1/SLC17A8/P2RX7/GJD2/AMPH/KCNK3/AGT/EPHB1/CPNE6/INSYN2A/PTPRS/SYT12/GABRB1/SHC3/GRIK1/NTNG2/GRIN2C/SHISA6/RASGRF1/KCNQ3
## GO:0098916                                                                             TNR/PLP1/GRIA2/SLC1A2/CACNG7/ADCY8/GRIA1/KCNQ2/ATP1A2/GABBR2/NRXN1/GABRG1/CNTNAP4/SEZ6/SHISA7/GRID2/SNCB/CHRNA4/SORCS3/NLGN1/KCNJ10/CNTN2/SNAP25/MAPT/NTRK2/IGSF11/TRIM9/FAM107A/RPH3A/JPH4/NR2E1/CSPG5/NOVA1/KCNB1/NRG3/GRM3/RIMS4/SLC1A3/GABRA1/SYT6/KIF5A/SLC6A1/GABRG2/DLGAP1/GRIK4/NETO1/GABRA3/ADGRB1/GAD2/GRIK3/JPH3/SLC1A6/CAMK2B/TUBB2B/KCND2/RIMS2/LGI1/CACNG2/SYT9/SLITRK5/GRIK2/CACNG4/HRH3/BCHE/LRRC4C/SLC8A3/GABRA5/PTN/NLGN3/CYP46A1/S100B/DGKB/CUX2/DTNA/RIC3/CAMK2A/CACNG3/CELF4/LRRTM2/SYT4/SLC24A2/SLC17A7/GLRA3/FGF12/GABRB3/PHF24/GRIN2A/GRM5/WNT7A/SCN2B/GRIK5/PDYN/KCNN1/UNC13A/SLC32A1/NPY/CDH2/INSYN1/PCDH8/RIMS1/CHRNB2/UNC13C/RIT2/NRXN2/TMEM108/SYT11/FGF14/CNR1/KCNA1/SYN2/STXBP5L/CNIH2/BSN/STX1B/GABRQ/LYPD1/SV2A/SYT3/NPTX1/DLG2/CPLX2/DCC/ADRA1A/ARC/HAP1/SLC12A5/CACNA1A/LRRC4/ERC2/SHANK1/GRM1/MAP1B/NEUROD2/CX3CR1/NLGN4X/APBA2/LRRTM1/SYP/P2RX6/GRID1/SLC17A6/SYNGR1/NPTXR/CACNA1G/DLGAP2/DGKI/SHISA9/CACNG8/SLC8A2/CACNB4/SLC4A10/MAP1A/GLRB/LYNX1/PPFIA2/CACNA1E/SYT5/MAPK8IP2/NTNG1/CACNA1B/EFNB3/CDH8/SYN1/GAD1/MPP2/TMOD2/HTR5A/HTR2C/CLSTN2/APOE/PTCHD1/KCNIP2/DLGAP3/GABRG3/HTR1A/ADORA1/SLC17A8/P2RX7/GJD2/AMPH/KCNK3/AGT/EPHB1/CPNE6/INSYN2A/PTPRS/SYT12/GABRB1/SHC3/GRIK1/NTNG2/GRIN2C/SHISA6/RASGRF1/KCNQ3
## GO:0050804                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                TNR/CACNG7/ADCY8/GRIA1/ATP1A2/NRXN1/CNTNAP4/SHISA7/GRID2/CHRNA4/SORCS3/NLGN1/KCNJ10/CNTN2/SNAP25/MAPT/NTRK2/IGSF11/FAM107A/JPH4/NR2E1/CSPG5/KCNB1/NRG3/GRM3/RIMS4/SLC1A3/SLC6A1/DLGAP1/GRIK4/NETO1/ADGRB1/GRIK3/JPH3/CAMK2B/TUBB2B/RIMS2/LGI1/CACNG2/SYT9/GRIK2/CACNG4/BCHE/LRRC4C/SLC8A3/PTN/NLGN3/CYP46A1/S100B/DGKB/CUX2/CAMK2A/CACNG3/CELF4/LRRTM2/SYT4/SLC24A2/PHF24/GRIN2A/GRM5/WNT7A/GRIK5/UNC13A/CDH2/RIMS1/CHRNB2/UNC13C/TMEM108/SYT11/FGF14/CNR1/STXBP5L/CNIH2/STX1B/NPTX1/CPLX2/DCC/ADRA1A/ARC/HAP1/CACNA1A/LRRC4/SHANK1/GRM1/MAP1B/NEUROD2/CX3CR1/NLGN4X/APBA2/LRRTM1/SYP/GRID1/SYNGR1/NPTXR/DLGAP2/DGKI/SHISA9/CACNG8/SLC8A2/SLC4A10/MAP1A/PPFIA2/MAPK8IP2/NTNG1/CACNA1B/EFNB3/SYN1/MPP2/CLSTN2/APOE/DLGAP3/ADORA1/AGT/EPHB1/PTPRS/SYT12/GRIK1/NTNG2/GRIN2C/SHISA6/RASGRF1
## GO:0099177                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                TNR/CACNG7/ADCY8/GRIA1/ATP1A2/NRXN1/CNTNAP4/SHISA7/GRID2/CHRNA4/SORCS3/NLGN1/KCNJ10/CNTN2/SNAP25/MAPT/NTRK2/IGSF11/FAM107A/JPH4/NR2E1/CSPG5/KCNB1/NRG3/GRM3/RIMS4/SLC1A3/SLC6A1/DLGAP1/GRIK4/NETO1/ADGRB1/GRIK3/JPH3/CAMK2B/TUBB2B/RIMS2/LGI1/CACNG2/SYT9/GRIK2/CACNG4/BCHE/LRRC4C/SLC8A3/PTN/NLGN3/CYP46A1/S100B/DGKB/CUX2/CAMK2A/CACNG3/CELF4/LRRTM2/SYT4/SLC24A2/PHF24/GRIN2A/GRM5/WNT7A/GRIK5/UNC13A/CDH2/RIMS1/CHRNB2/UNC13C/TMEM108/SYT11/FGF14/CNR1/STXBP5L/CNIH2/STX1B/NPTX1/CPLX2/DCC/ADRA1A/ARC/HAP1/CACNA1A/LRRC4/SHANK1/GRM1/MAP1B/NEUROD2/CX3CR1/NLGN4X/APBA2/LRRTM1/SYP/GRID1/SYNGR1/NPTXR/DLGAP2/DGKI/SHISA9/CACNG8/SLC8A2/SLC4A10/MAP1A/PPFIA2/MAPK8IP2/NTNG1/CACNA1B/EFNB3/SYN1/MPP2/CLSTN2/APOE/DLGAP3/ADORA1/AGT/EPHB1/PTPRS/SYT12/GRIK1/NTNG2/GRIN2C/SHISA6/RASGRF1
ggo.lgg.up <- id.table(ggo.lgg.up)

#lgg gsea GO down
ggo.lgg.dn <- ggo.lgg.BP[which(ggo.lgg.BP$NES < -1),]
head(ggo.lgg.dn)
##                    ID
## GO:0002250 GO:0002250
## GO:0006958 GO:0006958
## GO:0006959 GO:0006959
## GO:0002455 GO:0002455
## GO:0002252 GO:0002252
## GO:0002684 GO:0002684
##                                                               Description
## GO:0002250                                       adaptive immune response
## GO:0006958                       complement activation, classical pathway
## GO:0006959                                        humoral immune response
## GO:0002455 humoral immune response mediated by circulating immunoglobulin
## GO:0002252                                        immune effector process
## GO:0002684                   positive regulation of immune system process
##            setSize enrichmentScore       NES       pvalue     p.adjust
## GO:0002250     235      -0.6014781 -4.645400 1.975537e-53 1.372208e-50
## GO:0006958      90      -0.7708275 -4.903173 2.324708e-45 1.345618e-42
## GO:0006959     168      -0.6396969 -4.662382 4.599867e-45 2.282191e-42
## GO:0002455      93      -0.7564371 -4.877222 1.836898e-43 7.974432e-41
## GO:0002252     352      -0.4775634 -3.899240 3.071166e-43 1.185129e-40
## GO:0002684     339      -0.4831329 -3.920818 9.745108e-43 3.384476e-40
##                 qvalues rank                   leading_edge
## GO:0002250 8.679885e-51 1875 tags=80%, list=31%, signal=57%
## GO:0006958 8.511693e-43 1032 tags=88%, list=17%, signal=74%
## GO:0006959 1.443597e-42 1272 tags=71%, list=21%, signal=58%
## GO:0002455 5.044218e-41 1032 tags=85%, list=17%, signal=72%
## GO:0002252 7.496518e-41 2258 tags=74%, list=37%, signal=50%
## GO:0002684 2.140846e-40 1857 tags=65%, list=30%, signal=48%
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      core_enrichment
## GO:0002250                                                                                                                                                                                                                                                                                                                                                                    IGLV5-37/IRF4/ZP3/SH2D1A/CD209/TFRC/CD7/LAX1/PYCARD/CD48/GATA3/CD79B/TNFRSF14/IRF1/CLEC10A/PDCD1/CD46/ITK/CCR2/C2/EXO1/TXK/CTLA4/CD28/CD80/CTSS/CD6/ALOX15/NFKBIZ/BATF/TRBC2/FGB/STAT6/CD1E/EMP2/LY9/TNFRSF13B/CD1C/BCL3/TRAT1/TRPM4/IGKV1D-43/TNFRSF11A/TRBV20-1/TEC/CD40LG/IGHD/SLAMF6/IGHV4-4/RIPK3/IGKV1D-8/TRAC/CD8B/IGKV2-29/IGKV2D-24/CRACR2A/CD3E/ZC3H12A/FZD5/IL7R/IGKV1D-17/CD55/CD79A/TNFRSF17/MCOLN2/FGA/CD70/CD3G/LAMP3/CXCL13/IGKV1-39/IGHV1-45/IGLV3-16/IGLV1-36/SIT1/TRBV28/IGHV3-35/IGKV6D-21/IGHV3-7/CD1A/CLC/IGKV1-12/SLAMF1/CD3D/IGKV5-2/IGHV2-70D/IGKV2-30/IGHV1-3/IGKV1D-13/IGHV6-1/IGLV9-49/SLAMF7/CR2/IGKV3D-15/IGHV3-20/IGKV3-7/IGLV4-60/C4BPA/IGHV3-64/IGLV1-51/IGKV3D-11/IGKV6-21/IGHV2-5/IL23R/BTNL8/IGHV1-58/IGHV2-70/IGLV3-27/IGLV5-45/IGLC7/IGHV7-81/IGHV3-43/SKAP1/IGKV1-8/IGHV3-66/IGHV3-13/IGLV2-18/FCAMR/IGKV2D-29/IGHV4-61/IGLV10-54/IGHV2-26/IGLV7-43/IGLV1-47/RORC/IGLV3-9/IGLV7-46/IGHV4-28/IGKV3D-20/IGHV1-69/IGHV3-53/C4BPB/IGHV1-24/IGHV3-73/IGKV2-24/IGHV3-72/IGLV8-61/IGHV3-48/IGKV1-27/IGLV3-10/IGLV1-44/IGHM/IGHV1-69D/IGKV1-6/IGHV3-33/IGKV1-17/IGLV2-8/IGHV3-15/IGLV4-69/IGHV4-34/IGKV1-16/IGHV3-49/IGLV6-57/IGHV3-74/IGHV3-11/IGHV3-21/IGHV3-30/IGKV1-9/IGHG3/IGLV1-40/IGHG4/IGHV4-59/IGLV2-11/IGLV3-25/IGLV3-19/IGKV3-15/IGLL5/IGHV1-18/IGLV2-23/IGHV4-39/IGLC3/IGHG1/IGLV2-14/IGHV5-51/IGLV3-21/JCHAIN/IGKC/IGHG2/IGHV3-23/IGLC2/IGKV3-20/CEACAM1/IGKV1-5/IGKV4-1/IGHA1/GCNT3/IGHA2
## GO:0006958                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         IGKV1-39/IGHV1-45/IGHV3-35/IGHV3-7/IGKV1-12/IGKV5-2/IGHV2-70D/IGKV2-30/IGHV1-3/IGHV6-1/CR2/IGHV3-20/C4BPA/IGHV3-64/IGLV1-51/IGKV3D-11/IGHV2-5/IGHV1-58/IGHV2-70/IGLV3-27/IGLC7/IGHV7-81/IGHV3-43/IGHV3-66/IGHV3-13/IGHV4-61/IGHV2-26/IGLV7-43/IGLV1-47/IGHV4-28/IGKV3D-20/IGHV1-69/IGHV3-53/C4BPB/IGHV1-24/IGHV3-73/IGHV3-72/IGHV3-48/IGLV1-44/IGHM/IGHV1-69D/IGHV3-33/IGKV1-17/IGLV2-8/IGHV3-15/IGHV4-34/IGKV1-16/IGHV3-49/IGLV6-57/IGHV3-74/IGHV3-11/IGHV3-21/IGHV3-30/IGHG3/IGLV1-40/IGHG4/IGHV4-59/IGLV2-11/IGLV3-25/IGLV3-19/IGKV3-15/IGLL5/IGHV1-18/IGLV2-23/IGHV4-39/IGLC3/IGHG1/IGLV2-14/IGHV5-51/IGLV3-21/IGKC/IGHG2/IGHV3-23/IGLC2/IGKV3-20/IGKV1-5/IGKV4-1/IGHA1/IGHA2
## GO:0006959                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               IGHD/CFB/KRT6A/IGHV4-4/SEMG1/KLK3/MS4A1/IGKV2-29/SLPI/ANG/CD55/FGA/CXCL10/CXCL6/CXCL13/IGKV1-39/IGHV1-45/WFDC2/IGHV3-35/CTSG/CXCL11/IGHV3-7/IGKV1-12/IGKV5-2/IGHV2-70D/IGKV2-30/SPON2/IGHV1-3/IGHV6-1/CXCL9/CXCL3/CXCL8/CR2/CCL13/IGHV3-20/C4BPA/IGHV3-64/IGLV1-51/IGKV3D-11/MNX1/IGHV2-5/IGHV1-58/PRSS3/IGHV2-70/IGLV3-27/IGLC7/DEFB1/LYZ/IGHV7-81/IGHV3-43/IGHV3-66/IGHV3-13/PRSS2/DEFA5/IGHV4-61/CXCL1/IGHV2-26/IGLV7-43/IGLV1-47/IGHV4-28/IGKV3D-20/IGHV1-69/DEFA6/REG1B/IGHV3-53/DMBT1/C4BPB/IGHV1-24/IGHV3-73/IGHV3-72/IGHV3-48/IGLV1-44/IGHM/IGHV1-69D/IGHV3-33/IGKV1-17/IGLV2-8/IGHV3-15/IGHV4-34/IGKV1-16/IGHV3-49/IGLV6-57/IGHV3-74/IGHV3-11/IGHV3-21/IGHV3-30/IGHG3/IGLV1-40/IGHG4/IGHV4-59/IGLV2-11/IGLV3-25/IGLV3-19/IGKV3-15/REG3A/IGLL5/IGHV1-18/IGLV2-23/IGHV4-39/IGLC3/IGHG1/IGLV2-14/IGHV5-51/IGLV3-21/PI3/JCHAIN/IGKC/IGHG2/IGHV3-23/IGLC2/ITLN1/IGKV3-20/IGKV1-5/IGKV4-1/IGHA1/REG1A/PLA2G2A/IGHA2/LCN2
## GO:0002455                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         IGKV1-39/IGHV1-45/IGHV3-35/IGHV3-7/IGKV1-12/IGKV5-2/IGHV2-70D/IGKV2-30/IGHV1-3/IGHV6-1/CR2/IGHV3-20/C4BPA/IGHV3-64/IGLV1-51/IGKV3D-11/IGHV2-5/IGHV1-58/IGHV2-70/IGLV3-27/IGLC7/IGHV7-81/IGHV3-43/IGHV3-66/IGHV3-13/IGHV4-61/IGHV2-26/IGLV7-43/IGLV1-47/IGHV4-28/IGKV3D-20/IGHV1-69/IGHV3-53/C4BPB/IGHV1-24/IGHV3-73/IGHV3-72/IGHV3-48/IGLV1-44/IGHM/IGHV1-69D/IGHV3-33/IGKV1-17/IGLV2-8/IGHV3-15/IGHV4-34/IGKV1-16/IGHV3-49/IGLV6-57/IGHV3-74/IGHV3-11/IGHV3-21/IGHV3-30/IGHG3/IGLV1-40/IGHG4/IGHV4-59/IGLV2-11/IGLV3-25/IGLV3-19/IGKV3-15/IGLL5/IGHV1-18/IGLV2-23/IGHV4-39/IGLC3/IGHG1/IGLV2-14/IGHV5-51/IGLV3-21/IGKC/IGHG2/IGHV3-23/IGLC2/IGKV3-20/IGKV1-5/IGKV4-1/IGHA1/IGHA2
## GO:0002252 MYO1G/CGAS/IL18RAP/IQGAP2/IQGAP1/CLCF1/RAB3D/GFUS/HLA-F/KIR2DL4/ARPC1B/TMBIM1/ADORA2B/SYK/F2/CD247/RAB27A/IL4R/PLSCR1/FCN1/CFD/CD8A/ACE/TNFAIP3/IFNLR1/TTR/FUCA1/STAP1/HEBP2/CANT1/PPBP/IL6/PGC/CTSC/ADGRE3/TCIRG1/S100A9/TXNDC5/ZNF683/APOBEC3A/APOBEC3D/EOMES/PRF1/DNASE1L3/IRF4/ZP3/CYBA/SH2D1A/CDA/TFRC/MVP/GSDMD/PYCARD/IL15/B4GALT1/GATA3/TNFRSF14/IRF1/MYO1C/GGH/CD46/ISG20/CCR2/OASL/C2/VNN1/RAC2/FABP5/EXO1/VAMP8/CD28/CD80/CTSS/MME/STXBP2/MLKL/NFKBIZ/BATF/OAS1/TRBC2/APOBEC3B/STAT6/IFI27/CD1E/NOS2/EMP2/ENPP3/POU2AF1/LY9/ZBP1/PLAU/CD1C/BCL3/NBEAL2/ADGRE5/IFITM1/CPN1/FFAR2/SPINK5/FCRL3/ULBP3/PKP1/PTPN22/TRPM4/CD96/PLA2G3/CD40LG/CNN2/MCEMP1/IGHD/ACP3/CFB/BIRC3/SLAMF6/PTGER4/PLAUR/IGHV4-4/RIPK3/S100A11/IGKV2-29/SERPINA1/CRACR2A/SLPI/ZC3H12A/FZD5/IL7R/CD55/AGPAT2/CD70/SERPINB1/CD3G/CXCL10/CXCL6/IGKV1-39/IGHV1-45/ANPEP/ANXA2/IGHV3-35/CTSG/IGHV3-7/PLA2G10/CD1A/CLC/CEACAM3/IGKV1-12/SLAMF1/IGKV5-2/IGHV2-70D/JUP/IGKV2-30/SPON2/IGHV1-3/IL2RA/FRK/VAV3/IGHV6-1/F2RL1/CXCL9/SLAMF7/GZMB/LGALS3/CR2/IGHV3-20/ANXA3/PLAC8/MZB1/C4BPA/IGHV3-64/IGLV1-51/IGKV3D-11/IGHV2-5/MMP9/IL23R/IGHV1-58/PRSS3/IGHV2-70/CD177/IGLV3-27/IGLC7/LYZ/IGHV7-81/IGHV3-43/DSP/IGHV3-66/LRG1/IGHV3-13/PRSS2/IGHV4-61/CXCL1/IGHV2-26/IGLV7-43/IGLV1-47/RORC/TCN1/IGHV4-28/IGKV3D-20/IGHV1-69/SLC27A2/IGHV3-53/DMBT1/C4BPB/IGHV1-24/IGHV3-73/IGHV3-72/PCK1/IGHV3-48/IGLV1-44/IGHM/IGHV1-69D/MYB/IGHV3-33/IGKV1-17/IGLV2-8/IGHV3-15/IGHV4-34/IGKV1-16/IGHV3-49/NKX2-3/IGLV6-57/IGHV3-74/IGHV3-11/IGHV3-21/IGHV3-30/IGHG3/APOBEC1/IGLV1-40/IGHG4/IGHV4-59/IGLV2-11/OLFM4/IGLV3-25/IGLV3-19/IGKV3-15/IGLL5/IGHV1-18/IGLV2-23/IGHV4-39/IGLC3/IGHG1/IGLV2-14/IGHV5-51/IGLV3-21/IGKC/IGHG2/IGHV3-23/IGLC2/IGKV3-20/CEACAM1/IGKV1-5/S100P/IGKV4-1/IGHA1/GCNT3/MMP12/IGHA2/AOC1/TRIM15/CDH17/PIGR/LCN2/CEACAM6
## GO:0002684                                                                                                                                                                                                                                                                               ZP3/CXCL14/SH2D1A/CD209/RUNX1/TFRC/LAX1/PYCARD/PLVAP/IL15/GBP5/GATA3/CD79B/TNFRSF14/MYO1C/CLEC10A/PDCD1/CD46/INHBA/ITK/CASP8/CCR2/C2/VNN1/TNFRSF18/RAC2/TXK/CTLA4/VAMP8/CD28/CD80/PF4/CD6/IL1RL2/STXBP2/NFKBIZ/CCL5/TRBC2/CCR7/PYHIN1/STAT6/ITGA2/CD1E/NOS2/CXCL17/ENPP3/RHEX/ZBP1/CD1C/ROR2/IL7/TRAT1/RARRES2/CPN1/FFAR2/FCRL3/PTPN22/CD24/PLA2G3/TEC/CD40LG/PAWR/IGHD/HAVCR1/CFB/SLAMF6/CSF3/IGHV4-4/AQP3/SPACA3/HCAR2/CD5/MS4A1/TRAC/IGKV2-29/FUT4/SHH/CD3E/ZC3H12A/FZD5/IL7R/CD55/CD79A/CD70/UBASH3A/SELE/CD3G/CXCL10/CXCL13/IGKV1-39/IGHV1-45/GCSAM/SIRPG/IGHV3-35/MUC1/CTSG/IGHV3-7/CD2/CD1A/IGKV1-12/MUC20/LCK/CD3D/IGKV5-2/IGHV2-70D/IGKV2-30/LIF/SPON2/IGHV1-3/IL2RA/ICOS/SELP/VAV3/IGHV6-1/THBS1/F2RL1/BDKRB1/DPP4/EDN2/CXCL8/LGALS3/CR2/IGHV3-20/MZB1/C4BPA/MUC4/IGHV3-64/IGLV1-51/IGKV3D-11/IGHV2-5/IL23R/BTNL8/IGHV1-58/IGHV2-70/CD177/IGLV3-27/IGLC7/IGHV7-81/IGHV3-43/SKAP1/IGHV3-66/IGHV3-13/KCNN4/IGHV4-61/HOXA5/IGHV2-26/IGLV7-43/IGLV1-47/IGHV4-28/IGKV3D-20/IGHV1-69/IDO1/MUC5AC/TNFSF11/IGHV3-53/C4BPB/IGHV1-24/IGHV3-73/IGHV3-72/PCK1/MUC12/IGHV3-48/CCL21/IGLV1-44/HHLA2/IGHM/IGHV1-69D/MYB/IGHV3-33/IGKV1-17/IGLV2-8/IGHV3-15/IGHV4-34/IGKV1-16/IGHV3-49/IGLV6-57/IGHV3-74/IGHV3-11/IGHV3-21/BTNL3/IGHV3-30/IGHG3/IGLV1-40/CCL20/IGHG4/IGHV4-59/IGLV2-11/IGLV3-25/EREG/IGLV3-19/IGKV3-15/IGLL5/IGHV1-18/IGLV2-23/IGHV4-39/IGLC3/IGHG1/IGLV2-14/IGHV5-51/IGLV3-21/IGKC/IGHG2/IGHV3-23/IGLC2/IGKV3-20/CEACAM1/IGKV1-5/MUC17/MUC5B/IGKV4-1/S100A14/IGHA1/CCL24/IHH/MMP12/MUC3A/IGHA2/TRIM15/MUC13/MUC2
ggo.lgg.dn <- id.table(ggo.lgg.dn)

## to collect all functional analysis results
fa.DEA1 <- rbind(fa.DEA1,
                  setNames(ggo.gbm.up[,keep.colums.gsea], names(fa.DEA1)),
                  setNames(ggo.gbm.dn[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(ggo.lgg.up[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(ggo.lgg.dn[,keep.colums.gsea],names(fa.DEA1)))

Kyoto Encyclopedia of Genes and Genomes (KEGG) functional analysis

Similar procedure was done with the KEGG database. In this case the functions are enrichKEGG and gseKEGG for ORA and GSEA analysis, respectively.

ORA in KEGG
### GBM
# ORA KEGG up
ekg.gbm.up <- enrichKEGG(gene = names(gbm.up.gene),
                         organism = "hsa",
                         pAdjustMethod = "BH",
                         universe = names(gbm.all.gene),
                         pvalueCutoff = 0.05)

ekg.gbm.up <- setReadable(ekg.gbm.up, org.Hs.eg.db, keyType = "ENTREZID")
head(ekg.gbm.up)
##                ID                             Description GeneRatio  BgRatio
## hsa04080 hsa04080 Neuroactive ligand-receptor interaction    84/779 243/6694
## hsa05033 hsa05033                      Nicotine addiction    23/779  35/6694
## hsa04727 hsa04727                       GABAergic synapse    34/779  82/6694
## hsa04724 hsa04724                   Glutamatergic synapse    40/779 111/6694
## hsa05032 hsa05032                      Morphine addiction    32/779  84/6694
## hsa04721 hsa04721                  Synaptic vesicle cycle    26/779  72/6694
##                pvalue     p.adjust       qvalue
## hsa04080 7.136095e-22 2.197917e-19 1.968060e-19
## hsa05033 5.141718e-14 7.918245e-12 7.090158e-12
## hsa04727 4.687509e-12 4.812509e-10 4.309219e-10
## hsa04724 1.267195e-11 9.757401e-10 8.736976e-10
## hsa05032 2.831153e-10 1.743990e-08 1.561604e-08
## hsa04721 4.938567e-08 2.535131e-06 2.270008e-06
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       geneID
## hsa04080 ADCYAP1R1/GRIA2/GRIA1/GRIA3/GABBR2/NTSR2/GRID2/GRIA4/GRIK3/CNR1/GRM3/CHRNA9/PDYN/GABRA1/GALR1/GRIK4/GRIK5/TRH/CHRNA4/GRIK2/GRIK1/GABRG1/GABRA5/MCHR1/GABRQ/GABRG2/ADORA1/CCK/NPY/GABRA3/CRHR1/GRIN2A/CHRNB2/GLRB/AGT/HRH3/NPY2R/GRM5/GPR156/P2RX6/GRID1/GRM1/EDNRB/CCKBR/PTH1R/APLN/GABRB3/ADRA1A/HTR5A/GABRG3/P2RX7/GRM6/GLRA3/OPRL1/LPAR4/ADRA1D/NMB/FPR1/ADRA1B/PENK/GABRB1/GHRHR/OPRK1/TACR1/OXTR/GABBR1/APLNR/LPAR1/VIPR2/C3/CHRNA2/SST/GRIN2C/CRH/S1PR3/CYSLTR2/SSTR2/GRM2/TSHR/PTH2R/GRM7/P2RY13/NR3C1/S1PR1
## hsa05033                                                                                                                                                                                                                                                                                                                                                   GRIA2/GRIA1/GRIA3/GRIA4/GABRA1/CHRNA4/GABRG1/GABRA5/SLC17A7/GABRQ/GABRG2/SLC32A1/GABRA3/GRIN2A/CHRNB2/SLC17A6/CACNA1A/GABRB3/GABRG3/SLC17A8/GABRB1/CACNA1B/GRIN2C
## hsa04727                                                                                                                                                                                                                                                                                       ADCY8/SLC6A11/GABBR2/SLC38A3/GABRA1/GAD2/SLC6A1/HAP1/GABRG1/ADCY2/GABRA5/GABRQ/GABRG2/SLC32A1/GABRA3/GNAO1/GNG7/SLC12A5/GNG3/CACNA1A/KCNJ6/SLC6A13/GABRB3/GABRG3/ADCY1/GAD1/GNG2/ABAT/GABRB1/GABBR1/CACNA1B/GNB4/GNG8/SLC6A12
## hsa04724                                                                                                                                                                                                                                                              SLC1A2/GRIA2/ADCY8/GRIA1/SLC1A3/GRIA3/GRIA4/GRIK3/GRM3/SLC38A3/GRIK4/GRIK5/GRIK2/GRIK1/DLGAP1/ADCY2/SLC17A7/GNAO1/GRIN2A/GNG7/SLC17A6/GNG3/SLC1A6/GRM5/CACNA1A/SHANK1/GRM1/GRM6/SLC17A8/DLG4/ADCY1/HOMER2/GNG2/TRPC1/GRIN2C/GNB4/GRM2/GRM7/GNG8/HOMER3
## hsa05032                                                                                                                                                                                                                                                                                                         ADCY8/GABBR2/GABRA1/KCNJ9/GABRG1/ADCY2/GABRA5/GABRQ/GABRG2/ADORA1/SLC32A1/GABRA3/GNAO1/GNG7/GNG3/CACNA1A/KCNJ6/GABRB3/GABRG3/PDE1C/PDE4B/ADCY1/PDE8B/GNG2/PDE7B/GABRB1/GABBR1/KCNJ5/CACNA1B/GNB4/PDE1B/GNG8
## hsa04721                                                                                                                                                                                                                                                                                                                          SLC1A2/SLC6A11/SLC1A3/SNAP25/ATP6V1G2/SLC6A1/SLC17A7/SLC32A1/SLC17A6/RIMS1/STX1B/UNC13A/SLC1A6/UNC13C/CACNA1A/SLC6A13/CPLX2/ATP6V0E2/SLC17A8/ATP6V1B1/CACNA1B/DNM3/SYT1/RAB3A/DNM1/SLC6A12
##          Count
## hsa04080    84
## hsa05033    23
## hsa04727    34
## hsa04724    40
## hsa05032    32
## hsa04721    26
ekg.gbm.up <- id.table(ekg.gbm.up)

# ORA KEGG down
ekg.gbm.dn <- enrichKEGG(gene = names(gbm.dn.gene),
                         organism = "hsa",
                         pAdjustMethod = "BH",
                         universe = names(gbm.all.gene),
                         pvalueCutoff = 0.05)

ekg.gbm.dn <- setReadable(ekg.gbm.dn, org.Hs.eg.db, keyType = "ENTREZID")
head(ekg.gbm.dn)
##                ID                                                   Description
## hsa04060 hsa04060                        Cytokine-cytokine receptor interaction
## hsa00980 hsa00980                  Metabolism of xenobiotics by cytochrome P450
## hsa00830 hsa00830                                            Retinol metabolism
## hsa00982 hsa00982                             Drug metabolism - cytochrome P450
## hsa04974 hsa04974                              Protein digestion and absorption
## hsa04061 hsa04061 Viral protein interaction with cytokine and cytokine receptor
##          GeneRatio  BgRatio       pvalue     p.adjust       qvalue
## hsa04060    53/605 214/6694 3.624495e-12 1.090973e-09 9.271077e-10
## hsa00980    22/605  54/6694 3.638862e-10 5.476487e-08 4.653912e-08
## hsa00830    20/605  48/6694 1.447694e-09 1.452519e-07 1.234349e-07
## hsa00982    20/605  49/6694 2.242416e-09 1.515322e-07 1.287719e-07
## hsa04974    27/605  85/6694 2.647101e-09 1.515322e-07 1.287719e-07
## hsa04061    26/605  80/6694 3.020575e-09 1.515322e-07 1.287719e-07
##                                                                                                                                                                                                                                                                                                                                                     geneID
## hsa04060 IL7R/TNFSF9/IL2RB/XCR1/IL1R2/CCR4/CD40LG/TNFSF10/TNFRSF9/FASLG/LTB/ACVR1C/CXCL13/IL15RA/CXCL9/LTBR/CXCR6/PF4/TNFRSF11A/CCL19/INHBA/CCL22/IL1RL2/CXCL17/CCL14/CSF2/TNFRSF13B/IL32/CCL13/CCL18/TNFRSF10A/GDF15/TNFRSF17/CXCL3/BMP3/BMP4/IL20RA/CXCR3/IL17RE/IL2RG/TNFSF15/IL23R/CXCL1/CCL20/TNFSF11/CCL28/PRLR/EDAR/CCL11/CCL15/CCL21/IL22RA1/CCL24
## hsa00980                                                                                                                                                                                           ALDH3A1/ADH4/SULT2A1/ADH1B/GSTO2/UGT1A1/GSTA1/AKR7A3/CYP2C9/CYP3A5/ADH6/ALDH3B2/UGT1A8/CYP2S1/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa00830                                                                                                                                                                                                       ALDH1A3/ADH4/ADH1B/UGT1A1/CYP2C9/CYP3A5/ADH6/SDR16C5/UGT1A8/CYP2S1/UGT1A6/UGT2B7/CYP2C18/UGT2B15/UGT2B17/CYP2W1/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa00982                                                                                                                                                                                                            FMO5/ALDH3A1/ADH4/ADH1B/GSTO2/UGT1A1/GSTA1/CYP2C9/CYP3A5/ADH6/ALDH3B2/UGT1A8/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa04974                                                                                                                                                                 ATP1B1/DPP4/XPNPEP2/KCNE3/COL3A1/COL1A1/MME/SLC1A5/MEP1B/COL15A1/KCNQ1/COL6A3/COL12A1/SLC9A3/PRSS1/SLC6A19/SLC15A1/KCNN4/COL10A1/SLC3A1/CPA3/PRSS3/PRSS2/KCNK5/ACE2/COL17A1/MEP1A
## hsa04061                                                                                                                                                                                  IL2RB/XCR1/CCR4/TNFSF10/CXCL13/CXCL9/LTBR/PF4/CCL19/CCL22/CCL14/CCL13/CCL18/TNFRSF10A/CXCL3/IL20RA/CXCR3/IL2RG/CXCL1/CCL20/CCL28/CCL11/CCL15/CCL21/IL22RA1/CCL24
##          Count
## hsa04060    53
## hsa00980    22
## hsa00830    20
## hsa00982    20
## hsa04974    27
## hsa04061    26
ekg.gbm.dn <- id.table(ekg.gbm.dn)

### LGG
# ORA KEGG up
ekg.lgg.up <- enrichKEGG(gene = names(lgg.up.gene),
                         organism = "hsa",
                         pAdjustMethod = "BH",
                         universe = names(lgg.all.gene),
                         pvalueCutoff = 0.05)

ekg.lgg.up <- setReadable(ekg.lgg.up, org.Hs.eg.db, keyType = "ENTREZID")
head(ekg.lgg.up)
##                ID                             Description GeneRatio  BgRatio
## hsa04080 hsa04080 Neuroactive ligand-receptor interaction   107/920 243/6694
## hsa04727 hsa04727                       GABAergic synapse    46/920  82/6694
## hsa05033 hsa05033                      Nicotine addiction    28/920  35/6694
## hsa04724 hsa04724                   Glutamatergic synapse    52/920 111/6694
## hsa05032 hsa05032                      Morphine addiction    43/920  84/6694
## hsa04713 hsa04713                   Circadian entrainment    39/920  90/6694
##                pvalue     p.adjust       qvalue
## hsa04080 4.878270e-32 1.507385e-29 1.278620e-29
## hsa04727 1.357108e-19 2.096732e-17 1.778526e-17
## hsa05033 1.313151e-18 1.352545e-16 1.147279e-16
## hsa04724 2.002238e-17 1.546729e-15 1.311993e-15
## hsa05032 2.085241e-16 1.288679e-14 1.093105e-14
## hsa04713 4.862199e-12 2.504033e-10 2.124013e-10
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  geneID
## hsa04080 GRIA2/ADCYAP1R1/GRIA1/GABBR2/GABRG1/GRIA4/GRID2/NTSR2/GRIA3/CHRNA4/GRM3/GABRA1/GABRG2/GRIK4/GABRA3/GRIK3/PRLHR/GRIK2/HRH3/GABRA5/GLRA3/CRHR1/GABRB3/GRIN2A/GRM5/GRIK5/PDYN/GALR1/NPY/CHRNB2/CCK/CNR1/GABRQ/ADRA1A/GRM1/VIPR2/P2RX6/GRID1/GLRB/TRH/GABBR1/CCKBR/HTR5A/HTR2C/GABRG3/HTR1A/ADORA1/EDNRB/P2RX7/AGT/SSTR2/PTH1R/MCHR1/GABRB1/GRIK1/GRIN2C/TSHR/GRIN1/TACR1/GHRHR/LPAR4/SST/HTR2A/OPRK1/GABRB2/CHRNA2/CRH/OPRL1/GABRD/GRM6/GABRA4/GLP1R/ADRA1B/PENK/NMB/CHRM1/CHRM4/GRM7/GRM2/PTH2R/MAS1/S1PR1/MC4R/CALCRL/HTR1E/GPR156/GRIN3A/NPY2R/APLN/S1PR5/MCHR2/GPR83/NR3C1/GRM4/P2RY13/ADRB2/THRA/UCN/CHRNA9/ADRA1D/ADRB1/RXFP1/OPRD1/CYSLTR2/THRB/APLNR/CORT
## hsa04727                                                                                                                                                                                                                                                                                                                                                       ADCY8/GABBR2/GABRG1/SLC6A11/GABRA1/SLC6A1/GABRG2/GABRA3/GAD2/SLC38A3/ADCY2/GABRA5/GABRB3/GNAO1/SLC32A1/GABRQ/HAP1/SLC12A5/CACNA1A/SLC6A13/GNG7/CACNA1B/GAD1/GABBR1/GNG3/GABRG3/GABRB1/KCNJ6/ABAT/ADCY1/GABRB2/GABRD/GABRA4/ADCY5/PLCL1/PRKCB/GNG2/PRKCG/GNG8/SLC6A12/GNB4/GNG4/PRKCA/GNB3/GLUL/GABARAPL1
## hsa05033                                                                                                                                                                                                                                                                                                                                                                                                                                                             GRIA2/GRIA1/GABRG1/GRIA4/GRIA3/CHRNA4/GABRA1/GABRG2/GABRA3/GABRA5/SLC17A7/GABRB3/GRIN2A/SLC32A1/CHRNB2/GABRQ/CACNA1A/SLC17A6/CACNA1B/GABRG3/SLC17A8/GABRB1/GRIN2C/GRIN1/GABRB2/GABRD/GABRA4/GRIN3A
## hsa04724                                                                                                                                                                                                                                                                                                                                   GRIA2/SLC1A2/ADCY8/GRIA1/GRIA4/GRIA3/GRM3/SLC1A3/DLGAP1/GRIK4/GRIK3/SLC1A6/SLC38A3/GRIK2/ADCY2/SLC17A7/GNAO1/GRIN2A/GRM5/GRIK5/CACNA1A/SHANK1/GRM1/SLC17A6/GNG7/GNG3/SLC17A8/GRIK1/GRIN2C/GRIN1/DLG4/ADCY1/GRM6/HOMER2/ADCY5/PRKCB/GNG2/TRPC1/GRM7/GRM2/PRKCG/GNG8/GRIN3A/PLA2G4C/KCNJ3/GNB4/GRM4/PLCB1/GNG4/PRKCA/GNB3/GLUL
## hsa05032                                                                                                                                                                                                                                                                                                                                                                                  ADCY8/GABBR2/GABRG1/KCNJ9/GABRA1/GABRG2/GABRA3/ADCY2/GABRA5/GABRB3/GNAO1/SLC32A1/GABRQ/CACNA1A/GNG7/CACNA1B/GABBR1/GNG3/GABRG3/ADORA1/GABRB1/KCNJ6/PDE8B/PDE2A/ADCY1/GABRB2/GABRD/GABRA4/ADCY5/PRKCB/GNG2/PDE4B/PDE1C/PRKCG/PDE1B/GNG8/KCNJ5/PDE7B/KCNJ3/GNB4/GNG4/PRKCA/GNB3
## hsa04713                                                                                                                                                                                                                                                                                                                                                                                                                    GRIA2/ADCYAP1R1/ADCY8/GRIA1/GRIA4/GRIA3/KCNJ9/CAMK2B/ADCY2/CAMK2A/GNAO1/GRIN2A/RYR1/CACNA1G/GNG7/GNG3/GRIN2C/KCNJ6/NOS1/GRIN1/GUCY1A2/CACNA1I/ADCY1/RASD1/ADCY5/PRKCB/GNG2/PRKCG/RYR3/GNG8/KCNJ5/KCNJ3/GNB4/PER1/PLCB1/GNG4/PRKCA/GNB3/PER3
##          Count
## hsa04080   107
## hsa04727    46
## hsa05033    28
## hsa04724    52
## hsa05032    43
## hsa04713    39
ekg.lgg.up <- id.table(ekg.lgg.up)

# ORA KEGG down
ekg.lgg.dn <- enrichKEGG(gene = names(lgg.dn.gene),
                         organism = "hsa",
                         pAdjustMethod = "BH",
                         universe = names(lgg.all.gene),
                         pvalueCutoff = 0.05)

ekg.lgg.dn <- setReadable(ekg.lgg.dn, org.Hs.eg.db, keyType = "ENTREZID")
head(ekg.lgg.dn)
##                ID                                                   Description
## hsa04060 hsa04060                        Cytokine-cytokine receptor interaction
## hsa04061 hsa04061 Viral protein interaction with cytokine and cytokine receptor
## hsa04974 hsa04974                              Protein digestion and absorption
## hsa04640 hsa04640                                    Hematopoietic cell lineage
## hsa04950 hsa04950                          Maturity onset diabetes of the young
## hsa00980 hsa00980                  Metabolism of xenobiotics by cytochrome P450
##          GeneRatio  BgRatio       pvalue     p.adjust       qvalue
## hsa04060    86/940 214/6694 7.502047e-22 2.385651e-19 2.005811e-19
## hsa04061    44/940  80/6694 5.665166e-18 9.007614e-16 7.573433e-16
## hsa04974    35/940  85/6694 6.240670e-10 6.615110e-08 5.561860e-08
## hsa04640    31/940  81/6694 4.712055e-08 3.746084e-06 3.149637e-06
## hsa04950    12/940  19/6694 1.069677e-06 6.497671e-05 5.463119e-05
## hsa00980    22/940  54/6694 1.225976e-06 6.497671e-05 5.463119e-05
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       geneID
## hsa04060 ACVRL1/TNFSF9/IL18R1/CD27/TNFRSF10D/TNFRSF4/IL18RAP/CXCL2/CLCF1/CCL26/IL4R/IFNLR1/PPBP/IL6/TNFSF14/TNFRSF12A/CXCL14/LTB/IL15/TNFRSF14/IL24/INHBA/CCR2/TNFRSF18/BMP3/PF4/BMP4/IL1RL2/CCL5/CCR7/IL15RA/TNFSF10/CXCL17/TNFRSF11B/TNFRSF13B/CCL22/IL7/LTBR/XCR1/TNFRSF11A/CD40LG/CSF3/FASLG/CCL14/BMP5/TNFRSF9/IL7R/TNFRSF17/IL2RB/CD70/TNFRSF10A/CXCL10/CXCL6/CXCL13/CCR4/CXCL11/IL17RE/CXCR6/IL1RN/IL20RA/CSF2/LIF/IL2RA/IL1R2/IL32/CXCL9/CXCL3/CXCL8/CCL13/EDAR/IL2RG/IL23R/PRLR/CCL28/TNFSF15/CXCR3/CXCL1/CCL18/TNFSF11/CCL21/GDF15/CCL11/CCL15/CCL20/IL22RA1/CCL24
## hsa04061                                                                                                                                                                                                                                                                                IL18R1/TNFRSF10D/IL18RAP/CXCL2/CCL26/PPBP/IL6/TNFSF14/CXCL14/TNFRSF14/IL24/CCR2/PF4/CCL5/CCR7/TNFSF10/CCL22/LTBR/XCR1/CCL14/IL2RB/TNFRSF10A/CXCL10/CXCL6/CXCL13/CCR4/CXCL11/IL20RA/IL2RA/CXCL9/CXCL3/CXCL8/CCL13/IL2RG/CCL28/CXCR3/CXCL1/CCL18/CCL21/CCL11/CCL15/CCL20/IL22RA1/CCL24
## hsa04974                                                                                                                                                                                                                                                                                                                          ATP1A1/COL14A1/COL4A2/SLC9A3/COL4A1/COL5A2/MME/XPNPEP2/MEP1B/PRSS1/COL8A1/KCNQ1/COL6A2/SLC1A5/KCNE3/SLC6A19/COL12A1/COL10A1/SLC3A1/COL1A2/DPP4/COL15A1/COL5A1/PRSS3/SLC15A1/KCNN4/PRSS2/COL3A1/COL1A1/COL6A3/ACE2/CPA3/COL17A1/MEP1A/KCNK5
## hsa04640                                                                                                                                                                                                                                                                                                                                                                                                         ITGA1/CD19/ITGA3/IL4R/CD8A/ITGA6/IL6/TFRC/CD7/MME/ITGA2/CD1E/CD1C/IL7/CD24/CSF3/CD5/MS4A1/CD8B/CD3E/IL7R/CD55/CD3G/ANPEP/CD2/CD1A/CSF2/CD3D/IL2RA/IL1R2/CR2
## hsa04950                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               HES1/BHLHA15/PKLR/NR5A2/HNF4G/MNX1/HNF1B/HNF1A/PDX1/FOXA3/FOXA2/HNF4A
## hsa00980                                                                                                                                                                                                                                                                                                                                                                                                             GSTO2/MGST2/SULT2A1/ADH4/UGT1A1/ALDH3A1/GSTA1/CYP2C9/AKR7A3/CYP3A5/ADH6/ALDH3B2/UGT1A8/UGT1A6/CYP2S1/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
##          Count
## hsa04060    86
## hsa04061    44
## hsa04974    35
## hsa04640    31
## hsa04950    12
## hsa00980    22
ekg.lgg.dn <- id.table(ekg.lgg.dn)


## to collect all functional analysis results
fa.DEA1 <- rbind(fa.DEA1,
                  ekg.gbm.up[,keep.colums.enricher], 
                  ekg.gbm.dn[,keep.colums.enricher], 
                  ekg.lgg.up[,keep.colums.enricher], 
                  ekg.lgg.dn[,keep.colums.enricher])
GSEA in KEGG
set.seed(1234567)

##GBM
#GSEA in KEGG
gkg.gbm <- gseKEGG(geneList = c(gbm.up.gene,
                                gbm.dn.gene),
                   pAdjustMethod = "BH",
                   pvalueCutoff = 0.05,
                   verbose = FALSE
                   )
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
gkg.gbm <- setReadable(gkg.gbm, 'org.Hs.eg.db', 'ENTREZID')

#gbm gsea kegg up
gkg.gbm.up <- gkg.gbm[which(gkg.gbm$NES > 1),]
head(gkg.gbm.up)
##                ID                          Description setSize enrichmentScore
## hsa05033 hsa05033                   Nicotine addiction      25       0.5951441
## hsa04723 hsa04723 Retrograde endocannabinoid signaling      45       0.4655780
## hsa04724 hsa04724                Glutamatergic synapse      48       0.4576234
## hsa04727 hsa04727                    GABAergic synapse      37       0.4923377
## hsa04024 hsa04024               cAMP signaling pathway      57       0.4063099
## hsa04721 hsa04721               Synaptic vesicle cycle      27       0.4985965
##               NES       pvalue     p.adjust      qvalues rank
## hsa05033 2.681098 1.417826e-06 9.535933e-05 7.221783e-05  790
## hsa04723 2.504622 2.157451e-06 9.535933e-05 7.221783e-05 1275
## hsa04724 2.535382 3.916867e-06 1.364446e-04 1.033327e-04 1205
## hsa04727 2.490467 5.509900e-06 1.522110e-04 1.152729e-04 1275
## hsa04024 2.367324 1.478718e-05 3.267967e-04 2.474907e-04  806
## hsa04721 2.300904 1.363194e-04 1.673699e-03 1.267531e-03 1612
##                            leading_edge
## hsa05033 tags=64%, list=16%, signal=54%
## hsa04723 tags=60%, list=26%, signal=45%
## hsa04724 tags=56%, list=25%, signal=43%
## hsa04727 tags=62%, list=26%, signal=46%
## hsa04024 tags=39%, list=17%, signal=33%
## hsa04721 tags=70%, list=33%, signal=47%
##                                                                                                                                                                      core_enrichment
## hsa05033                                                               GRIA2/GRIA1/GRIA3/GRIA4/GABRA1/CHRNA4/GABRG1/GABRA5/SLC17A7/GABRQ/GABRG2/SLC32A1/GABRA3/GRIN2A/CHRNB2/SLC17A6
## hsa04723 GRIA2/ADCY8/GRIA1/GRIA3/GRIA4/CNR1/GABRA1/KCNJ9/GABRG1/ADCY2/GABRA5/SLC17A7/GABRQ/GABRG2/SLC32A1/GABRA3/GNAO1/MAPK10/GNG7/SLC17A6/RIMS1/GNG3/GRM5/CACNA1A/KCNJ6/GRM1/GABRB3
## hsa04724  SLC1A2/GRIA2/ADCY8/GRIA1/SLC1A3/GRIA3/GRIA4/GRIK3/GRM3/SLC38A3/GRIK4/GRIK5/GRIK2/GRIK1/DLGAP1/ADCY2/SLC17A7/GNAO1/GRIN2A/GNG7/SLC17A6/GNG3/SLC1A6/GRM5/CACNA1A/SHANK1/GRM1
## hsa04727                   ADCY8/SLC6A11/GABBR2/SLC38A3/GABRA1/GAD2/SLC6A1/HAP1/GABRG1/ADCY2/GABRA5/GABRQ/GABRG2/SLC32A1/GABRA3/GNAO1/GNG7/SLC12A5/GNG3/CACNA1A/KCNJ6/SLC6A13/GABRB3
## hsa04024                              ADCYAP1R1/GRIA2/ADCY8/ATP1B2/GRIA1/ATP1A2/ATP2B2/GRIA3/GABBR2/GRIA4/CAMK2B/CNGA3/CAMK2A/ADCY2/ADORA1/HCN2/NPY/GRIN2A/MAPK10/ATP2B3/NPPA/ATP1A3
## hsa04721                                SLC1A2/SLC6A11/SLC1A3/SNAP25/ATP6V1G2/SLC6A1/SLC17A7/SLC32A1/SLC17A6/RIMS1/STX1B/UNC13A/SLC1A6/UNC13C/CACNA1A/SLC6A13/CPLX2/ATP6V0E2/SLC17A8
gkg.gbm.up <- id.table(gkg.gbm.up)

#gbm gsea kegg down
gkg.gbm.dn <- gkg.gbm[which(gkg.gbm$NES < -1),]
head(gkg.gbm.dn)
##                ID                                                   Description
## hsa00830 hsa00830                                            Retinol metabolism
## hsa04061 hsa04061 Viral protein interaction with cytokine and cytokine receptor
## hsa00140 hsa00140                                  Steroid hormone biosynthesis
## hsa00980 hsa00980                  Metabolism of xenobiotics by cytochrome P450
## hsa00040 hsa00040                      Pentose and glucuronate interconversions
## hsa04060 hsa04060                        Cytokine-cytokine receptor interaction
##          setSize enrichmentScore       NES       pvalue     p.adjust
## hsa00830      22      -0.6563215 -2.851967 3.363806e-07 7.434010e-05
## hsa04061      29      -0.5727929 -2.779940 1.545539e-06 9.535933e-05
## hsa00140      19      -0.6621634 -2.703281 1.812754e-06 9.535933e-05
## hsa00980      30      -0.5430141 -2.662410 4.321775e-06 1.364446e-04
## hsa00040      11      -0.7493302 -2.537540 1.451143e-05 3.267967e-04
## hsa04060      75      -0.3756548 -2.357423 1.689889e-05 3.395141e-04
##               qvalues rank                   leading_edge
## hsa00830 5.629948e-05  748 tags=77%, list=15%, signal=66%
## hsa04061 7.221783e-05 1669 tags=90%, list=35%, signal=59%
## hsa00140 7.221783e-05  915 tags=74%, list=19%, signal=60%
## hsa00980 1.033327e-04 1020 tags=60%, list=21%, signal=48%
## hsa00040 2.474907e-04  505 tags=82%, list=10%, signal=73%
## hsa04060 2.571219e-04 1678 tags=71%, list=35%, signal=47%
##                                                                                                                                                                                                                                                                                                                                            core_enrichment
## hsa00830                                                                                                                                                                                                                          UGT1A1/CYP2C9/CYP3A5/ADH6/SDR16C5/UGT1A8/CYP2S1/UGT1A6/UGT2B7/CYP2C18/UGT2B15/UGT2B17/CYP2W1/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa04061                                                                                                                                                                                  IL2RB/XCR1/CCR4/TNFSF10/CXCL13/CXCL9/LTBR/PF4/CCL19/CCL22/CCL14/CCL13/CCL18/TNFRSF10A/CXCL3/IL20RA/CXCR3/IL2RG/CXCL1/CCL20/CCL28/CCL11/CCL15/CCL21/IL22RA1/CCL24
## hsa00140                                                                                                                                                                                                                                           HSD3B1/UGT1A1/AKR1C4/CYP3A5/SULT2B1/UGT1A8/HSD11B2/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/HSD17B2/UGT2A3
## hsa00980                                                                                                                                                                                                                      GSTO2/UGT1A1/GSTA1/AKR7A3/CYP2C9/CYP3A5/ADH6/ALDH3B2/UGT1A8/CYP2S1/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa00040                                                                                                                                                                                                                                                                                UGT1A1/UGT1A8/AKR1B10/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/UGT2A3
## hsa04060 IL7R/TNFSF9/IL2RB/XCR1/IL1R2/CCR4/CD40LG/TNFSF10/TNFRSF9/FASLG/LTB/ACVR1C/CXCL13/IL15RA/CXCL9/LTBR/CXCR6/PF4/TNFRSF11A/CCL19/INHBA/CCL22/IL1RL2/CXCL17/CCL14/CSF2/TNFRSF13B/IL32/CCL13/CCL18/TNFRSF10A/GDF15/TNFRSF17/CXCL3/BMP3/BMP4/IL20RA/CXCR3/IL17RE/IL2RG/TNFSF15/IL23R/CXCL1/CCL20/TNFSF11/CCL28/PRLR/EDAR/CCL11/CCL15/CCL21/IL22RA1/CCL24
gkg.gbm.dn <- id.table(gkg.gbm.dn)

##lgg
#GSEA in KEGG
gkg.lgg <- gseKEGG(geneList = c(lgg.up.gene,
                                lgg.dn.gene),
                   pAdjustMethod = "BH",
                   pvalueCutoff = 0.05,
                   verbose = FALSE
                   )
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
## Warning in fgseaMultilevel(...): For some pathways, in reality P-values are less
## than 1e-10. You can set the `eps` argument to zero for better estimation.
gkg.lgg <- setReadable(gkg.lgg, 'org.Hs.eg.db', 'ENTREZID')

#lgg gsea kegg up
gkg.lgg.up <- gkg.lgg[which(gkg.lgg$NES > 1),]
head(gkg.lgg.up)
##                ID                             Description setSize
## hsa05033 hsa05033                      Nicotine addiction      30
## hsa04723 hsa04723    Retrograde endocannabinoid signaling      54
## hsa04727 hsa04727                       GABAergic synapse      48
## hsa04724 hsa04724                   Glutamatergic synapse      58
## hsa04721 hsa04721                  Synaptic vesicle cycle      34
## hsa04080 hsa04080 Neuroactive ligand-receptor interaction     147
##          enrichmentScore      NES       pvalue     p.adjust      qvalues rank
## hsa05033       0.6663435 3.030571 7.013635e-10 6.171999e-08 4.134353e-08 1322
## hsa04723       0.5343642 2.845641 2.375677e-09 1.567947e-07 1.050299e-07 1265
## hsa04727       0.5398144 2.785318 5.966834e-09 3.150488e-07 2.110375e-07 1365
## hsa04724       0.4849038 2.631907 6.586936e-08 2.484216e-06 1.664068e-06 1230
## hsa04721       0.5848889 2.746391 7.632619e-08 2.518764e-06 1.687210e-06 1103
## hsa04080       0.3450380 2.318550 2.219930e-07 5.860616e-06 3.925771e-06 1230
##                            leading_edge
## hsa05033 tags=80%, list=22%, signal=63%
## hsa04723 tags=57%, list=21%, signal=46%
## hsa04727 tags=60%, list=22%, signal=47%
## hsa04724 tags=50%, list=20%, signal=40%
## hsa04721 tags=59%, list=18%, signal=49%
## hsa04080 tags=38%, list=20%, signal=31%
##                                                                                                                                                                                                                                                                                                                                               core_enrichment
## hsa05033                                                                                                                                                                              GRIA2/GRIA1/GABRG1/GRIA4/GRIA3/CHRNA4/GABRA1/GABRG2/GABRA3/GABRA5/SLC17A7/GABRB3/GRIN2A/SLC32A1/CHRNB2/GABRQ/CACNA1A/SLC17A6/CACNA1B/GABRG3/SLC17A8/GABRB1/GRIN2C/GRIN1
## hsa04723                                                                                                                                            GRIA2/ADCY8/GRIA1/GABRG1/GRIA4/GRIA3/KCNJ9/GABRA1/GABRG2/GABRA3/ADCY2/GABRA5/SLC17A7/GABRB3/GNAO1/GRM5/SLC32A1/RIMS1/CNR1/GABRQ/MAPK10/CACNA1A/GRM1/SLC17A6/GNG7/CACNA1B/GNG3/GABRG3/SLC17A8/GABRB1/KCNJ6
## hsa04727                                                                                                                                                     ADCY8/GABBR2/GABRG1/SLC6A11/GABRA1/SLC6A1/GABRG2/GABRA3/GAD2/SLC38A3/ADCY2/GABRA5/GABRB3/GNAO1/SLC32A1/GABRQ/HAP1/SLC12A5/CACNA1A/SLC6A13/GNG7/CACNA1B/GAD1/GABBR1/GNG3/GABRG3/GABRB1/KCNJ6/ABAT
## hsa04724                                                                                                                                                            GRIA2/SLC1A2/ADCY8/GRIA1/GRIA4/GRIA3/GRM3/SLC1A3/DLGAP1/GRIK4/GRIK3/SLC1A6/SLC38A3/GRIK2/ADCY2/SLC17A7/GNAO1/GRIN2A/GRM5/GRIK5/CACNA1A/SHANK1/GRM1/SLC17A6/GNG7/GNG3/SLC17A8/GRIK1/GRIN2C
## hsa04721                                                                                                                                                                                                     SLC1A2/SLC6A11/SNAP25/SLC1A3/ATP6V1G2/SLC6A1/SLC1A6/SLC17A7/UNC13A/SLC32A1/RIMS1/UNC13C/STX1B/CPLX2/CACNA1A/SLC17A6/SLC6A13/CACNA1B/DNM3/SLC17A8
## hsa04080 GRIA2/ADCYAP1R1/GRIA1/GABBR2/GABRG1/GRIA4/GRID2/NTSR2/GRIA3/CHRNA4/GRM3/GABRA1/GABRG2/GRIK4/GABRA3/GRIK3/PRLHR/GRIK2/HRH3/GABRA5/GLRA3/CRHR1/GABRB3/GRIN2A/GRM5/GRIK5/PDYN/GALR1/NPY/CHRNB2/CCK/CNR1/GABRQ/ADRA1A/GRM1/VIPR2/P2RX6/GRID1/GLRB/TRH/GABBR1/CCKBR/HTR5A/HTR2C/GABRG3/HTR1A/ADORA1/EDNRB/P2RX7/AGT/SSTR2/PTH1R/MCHR1/GABRB1/GRIK1/GRIN2C
gkg.lgg.up <- id.table(gkg.lgg.up)

#lgg gsea kegg down
gkg.lgg.dn <- gkg.lgg[which(gkg.lgg$NES < -1),]
head(gkg.lgg.dn)
##                ID                                                   Description
## hsa04060 hsa04060                        Cytokine-cytokine receptor interaction
## hsa04061 hsa04061 Viral protein interaction with cytokine and cytokine receptor
## hsa00830 hsa00830                                            Retinol metabolism
## hsa00980 hsa00980                  Metabolism of xenobiotics by cytochrome P450
## hsa00040 hsa00040                      Pentose and glucuronate interconversions
## hsa00982 hsa00982                             Drug metabolism - cytochrome P450
##          setSize enrichmentScore       NES       pvalue     p.adjust
## hsa04060     106      -0.4457092 -2.918626 1.000000e-10 2.640000e-08
## hsa04061      47      -0.5717562 -3.007185 5.085073e-10 6.171999e-08
## hsa00830      22      -0.6982530 -2.935977 1.411192e-08 6.209247e-07
## hsa00980      31      -0.5865730 -2.739692 1.985647e-07 5.824563e-06
## hsa00040      11      -0.7665236 -2.534338 2.690258e-06 5.918568e-05
## hsa00982      29      -0.5708124 -2.600628 3.084894e-06 6.264708e-05
##               qvalues rank                   leading_edge
## hsa04060 1.768421e-08 1874 tags=67%, list=31%, signal=47%
## hsa04061 4.134353e-08 2290 tags=91%, list=37%, signal=58%
## hsa00830 4.159304e-07 1219 tags=86%, list=20%, signal=69%
## hsa00980 3.901621e-06 1171 tags=61%, list=19%, signal=50%
## hsa00040 3.964591e-05  589 tags=82%, list=10%, signal=74%
## hsa00982 4.196455e-05 1171 tags=59%, list=19%, signal=48%
##                                                                                                                                                                                                                                                                                                                                                                                                                                                           core_enrichment
## hsa04060 TNFRSF12A/CXCL14/LTB/IL15/TNFRSF14/IL24/INHBA/CCR2/TNFRSF18/BMP3/PF4/BMP4/IL1RL2/CCL5/CCR7/IL15RA/TNFSF10/CXCL17/TNFRSF11B/TNFRSF13B/CCL22/IL7/LTBR/XCR1/TNFRSF11A/CD40LG/CSF3/FASLG/CCL14/BMP5/TNFRSF9/IL7R/TNFRSF17/IL2RB/CD70/TNFRSF10A/CXCL10/CXCL6/CXCL13/CCR4/CXCL11/IL17RE/CXCR6/IL1RN/IL20RA/CSF2/LIF/IL2RA/IL1R2/IL32/CXCL9/CXCL3/CXCL8/CCL13/EDAR/IL2RG/IL23R/PRLR/CCL28/TNFSF15/CXCR3/CXCL1/CCL18/TNFSF11/CCL21/GDF15/CCL11/CCL15/CCL20/IL22RA1/CCL24
## hsa04061                                                                                                                                                                                    TNFRSF10D/IL18RAP/CXCL2/CCL26/PPBP/IL6/TNFSF14/CXCL14/TNFRSF14/IL24/CCR2/PF4/CCL5/CCR7/TNFSF10/CCL22/LTBR/XCR1/CCL14/IL2RB/TNFRSF10A/CXCL10/CXCL6/CXCL13/CCR4/CXCL11/IL20RA/IL2RA/CXCL9/CXCL3/CXCL8/CCL13/IL2RG/CCL28/CXCR3/CXCL1/CCL18/CCL21/CCL11/CCL15/CCL20/IL22RA1/CCL24
## hsa00830                                                                                                                                                                                                                                                                                                                            ALDH1A3/ADH4/UGT1A1/SDR16C5/CYP2C9/CYP3A5/ADH6/UGT1A8/UGT1A6/CYP2C18/CYP2W1/CYP2S1/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa00980                                                                                                                                                                                                                                                                                                                              ADH4/UGT1A1/ALDH3A1/GSTA1/CYP2C9/AKR7A3/CYP3A5/ADH6/ALDH3B2/UGT1A8/UGT1A6/CYP2S1/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
## hsa00040                                                                                                                                                                                                                                                                                                                                                                                               UGT1A1/UGT1A8/UGT1A6/AKR1B10/UGT2B7/UGT2B15/UGT2B17/UGT1A10/UGT2A3
## hsa00982                                                                                                                                                                                                                                                                                                                                            ADH4/UGT1A1/ALDH3A1/GSTA1/CYP2C9/CYP3A5/ADH6/ALDH3B2/UGT1A8/UGT1A6/UGT2B7/UGT2B15/UGT2B17/UGT1A10/ADH1C/UGT2A3/CYP2B6
gkg.lgg.dn <- id.table(gkg.lgg.dn)

fa.DEA1 <- rbind(fa.DEA1,
                  setNames(gkg.gbm.up[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(gkg.gbm.dn[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(gkg.lgg.up[,keep.colums.gsea],names(fa.DEA1)),
                  setNames(gkg.lgg.dn[,keep.colums.gsea],names(fa.DEA1)))
writexl::write_xlsx(fa.DEA1, path = "DEAsets/fa.DEA1.xlsx")

Wordcloud functional analysis from DEA1

In this section, different wordclouds are shown from proccesses and genes involved in the proccesses.

### fuction to create tables and wordclouds of proccess and genes respectively
proccess.table <- function(fa.table, database, cases, reg){
  t <- fa.table
  enrich <- paste("e",database, sep = "")
  gsea <- paste("g",database, sep = "")
  t <- t$Description[which(t$tool == enrich & t$cancer == cases & t$regulation_proccess == reg|
                            t$tool == gsea & t$cancer == cases & t$regulation_proccess == reg)]
  t <- as.data.frame(table(t))
  t <- t[order(t$Freq,decreasing = TRUE),]
  return <- (t)
}

#function to get wordcloud
getwordcloud <- function(fa.table, database, cases, reg,  scale.w = c(1.8,.3)){
  w <- fa.table
  enrich <- paste("e",database, sep = "")
  gsea <- paste("g",database, sep = "")
  w <- w$geneID[which(w$tool == enrich & w$cancer == cases & w$regulation_proccess == reg|
                        w$tool == gsea & w$cancer == cases & w$regulation_proccess == reg)]
  w <- unlist(strsplit(w, "/"))
  w <- as.data.frame(table(w))
  wordcloud(words = w$w, freq = w$Freq,
            min.freq = 4,max.words=50, random.order=FALSE, 
            rot.per=0.35, scale= scale.w, colors=brewer.pal(8, "Dark2"))
}

#### Wordclouds for FA1 ####
### acronyms
## databases
# wp = wikipathways
# go = gene ontology
# kg = KEGG
##cases
# gbm = GBM vs colon
# lgg = LGG vs colon
# gli = GBM vs LGG

### WIKIPATHWAYS ####
## GBM 
#up-regulated
fa.wp.gbm.up<- proccess.table(fa.table = fa.DEA1, 
                           database = "wp", 
                           cases = "gbm", 
                           reg = "up")
head(fa.wp.gbm.up)
##                                                         t Freq
## 4             Disruption of postsynaptic signaling by CNV    2
## 6                                     Fragile X Syndrome     2
## 7                                 GABA receptor Signaling    2
## 12 mBDNF and proBDNF regulation of GABA neurotransmission    2
## 13                     MECP2 and Associated Rett Syndrome    2
## 15                           Neural Crest Differentiation    2
getwordcloud(fa.table = fa.DEA1, 
             database = "wp",
             cases = "gbm", 
             reg = "up")

#down-regulated
fa.wp.gbm.dn<- proccess.table(fa.table = fa.DEA1, 
                           database = "wp", 
                           cases = "gbm", 
                           reg = "dn")
head(fa.wp.gbm.dn)
##                                                            t Freq
## 2  Epithelial to mesenchymal transition in colorectal cancer    2
## 7               Metapathway biotransformation Phase I and II    2
## 8                             Nuclear Receptors Meta-Pathway    2
## 13                                Vitamin D Receptor Pathway    2
## 1                            Codeine and Morphine Metabolism    1
## 3                                        Estrogen metabolism    1
getwordcloud(fa.table = fa.DEA1, 
             database = "wp",
             cases = "gbm", 
             reg = "dn")

## LGG
#up
fa.wp.lgg.up<- proccess.table(fa.table = fa.DEA1, 
                           database = "wp", 
                           cases = "lgg", 
                           reg = "up")
head(fa.wp.lgg.up)
##                                                            t Freq
## 2 Brain-derived neurotrophic factor (BDNF) signaling pathway    2
## 3                     Calcium Regulation in the Cardiac Cell    2
## 5                  Common Pathways Underlying Drug Addiction    2
## 6                Disruption of postsynaptic signaling by CNV    2
## 7                                        Fragile X Syndrome     2
## 8                                    GABA receptor Signaling    2
getwordcloud(fa.table = fa.DEA1, 
             database = "wp",
             cases = "lgg", 
             reg = "up")

#down-regulated
fa.wp.lgg.dn<- proccess.table(fa.table = fa.DEA1, 
                           database = "wp", 
                           cases = "lgg", 
                           reg = "dn")
head(fa.wp.lgg.dn)
##                                                                            t
## 1                                                        Allograft Rejection
## 10                                                   IL-18 signaling pathway
## 11                                             Inflammatory Response Pathway
## 12 Interactions between immune cells and microRNAs in tumor microenvironment
## 14                                                 Matrix Metalloproteinases
## 16                               miRNA targets in ECM and membrane receptors
##    Freq
## 1     2
## 10    2
## 11    2
## 12    2
## 14    2
## 16    2
getwordcloud(fa.table = fa.DEA1, 
             database = "wp",
             cases = "lgg", 
             reg = "dn")

## GENE ONTOLOGY ####
## GBM 
#up-regulated
fa.go.gbm.up<- proccess.table(fa.table = fa.DEA1, 
                           database = "go", 
                           cases = "gbm", 
                           reg = "up")
head(fa.go.gbm.up)
##                                                t Freq
## 36                          synapse organization    2
## 1           anterograde trans-synaptic signaling    1
## 2                                       behavior    1
## 3                         cell junction assembly    1
## 4             central nervous system development    1
## 5  central nervous system neuron differentiation    1
getwordcloud(fa.table = fa.DEA1, 
             database = "go",
             cases = "gbm", 
             reg = "up")

#down-regulated
fa.go.gbm.dn<- proccess.table(fa.table = fa.DEA1, 
                           database = "go", 
                           cases = "gbm", 
                           reg = "dn")
head(fa.go.gbm.dn)
##                                                                                                                            t
## 5                                                                                                   B cell mediated immunity
## 25                                                                                   immunoglobulin mediated immune response
## 1                                                                                              activation of immune response
## 2                                                                                                   adaptive immune response
## 3  adaptive immune response based on somatic recombination of immune receptors built from immunoglobulin superfamily domains
## 4                                                                                antigen receptor-mediated signaling pathway
##    Freq
## 5     2
## 25    2
## 1     1
## 2     1
## 3     1
## 4     1
getwordcloud(fa.table = fa.DEA1, 
             database = "go",
             cases = "gbm", 
             reg = "dn",
             scale.w = c(1,.2))

## LGG
#up
fa.go.lgg.up<- proccess.table(fa.table = fa.DEA1, 
                           database = "go", 
                           cases = "lgg", 
                           reg = "up")
head(fa.go.lgg.up)
##                                                t Freq
## 36                          synapse organization    2
## 1           anterograde trans-synaptic signaling    1
## 2                                       behavior    1
## 3                         cell junction assembly    1
## 4             central nervous system development    1
## 5  central nervous system neuron differentiation    1
getwordcloud(fa.table = fa.DEA1, 
             database = "go",
             cases = "lgg", 
             reg = "up")

#down-regulated
fa.go.lgg.dn<- proccess.table(fa.table = fa.DEA1, 
                           database = "go", 
                           cases = "lgg", 
                           reg = "dn")
head(fa.go.lgg.dn)
##                                              t Freq
## 5                     B cell mediated immunity    2
## 23     immunoglobulin mediated immune response    2
## 1                activation of immune response    1
## 2                     adaptive immune response    1
## 3            alpha-beta T cell differentiation    1
## 4  antigen receptor-mediated signaling pathway    1
getwordcloud(fa.table = fa.DEA1, 
             database = "go",
             cases = "lgg", 
             reg = "dn",
             scale.w = c(1,.2))

## KEGG ####
## GBM 
#up-regulated
fa.kg.gbm.up<- proccess.table(fa.table = fa.DEA1, 
                           database = "kg", 
                           cases = "gbm", 
                           reg = "up")
head(fa.kg.gbm.up)
##                                         t Freq
## 1  Adrenergic signaling in cardiomyocytes    2
## 8                  cAMP signaling pathway    2
## 10                Cell adhesion molecules    2
## 11                  Circadian entrainment    2
## 13                   Dopaminergic synapse    2
## 14                      GABAergic synapse    2
getwordcloud(fa.table = fa.DEA1, 
             database = "kg",
             cases = "gbm", 
             reg = "up")

#down-regulated
fa.kg.gbm.dn<- proccess.table(fa.table = fa.DEA1, 
                           database = "kg", 
                           cases = "gbm", 
                           reg = "dn")
head(fa.kg.gbm.dn)
##                                         t Freq
## 2             Arachidonic acid metabolism    2
## 3       Ascorbate and aldarate metabolism    2
## 6   Chemical carcinogenesis - DNA adducts    2
## 7  Cytokine-cytokine receptor interaction    2
## 8       Drug metabolism - cytochrome P450    2
## 10           Fat digestion and absorption    2
getwordcloud(fa.table = fa.DEA1, 
             database = "kg",
             cases = "gbm", 
             reg = "dn")

## LGG
#up
fa.kg.lgg.up<- proccess.table(fa.table = fa.DEA1, 
                           database = "kg", 
                           cases = "lgg", 
                           reg = "up")
head(fa.kg.lgg.up)
##                                        t Freq
## 1 Adrenergic signaling in cardiomyocytes    2
## 4              Calcium signaling pathway    2
## 5                 cAMP signaling pathway    2
## 7                    Cholinergic synapse    2
## 8                  Circadian entrainment    2
## 9                   Dopaminergic synapse    2
getwordcloud(fa.table = fa.DEA1, 
             database = "kg",
             cases = "lgg", 
             reg = "up")

#down-regulated
fa.kg.lgg.dn<- proccess.table(fa.table = fa.DEA1, 
                           database = "kg", 
                           cases = "lgg", 
                           reg = "dn")
head(fa.kg.lgg.dn)
##                                         t Freq
## 1             Arachidonic acid metabolism    2
## 2       Ascorbate and aldarate metabolism    2
## 4   Chemical carcinogenesis - DNA adducts    2
## 6  Cytokine-cytokine receptor interaction    2
## 7       Drug metabolism - cytochrome P450    2
## 10           Fat digestion and absorption    2
getwordcloud(fa.table = fa.DEA1, 
             database = "kg",
             cases = "lgg", 
             reg = "dn")

Analysis 2

In the second analysis, we want to carry out an differential expression analysis between similar glioma cancer typology. Then, no colon cases will be use below.

Filtering

Colon cases were removed and new factor group was created in this chunk.

#sim data, no colon cases
sim_exprs <- raw_exprs[,which(group_f != "colon")]

#groups for sim data
group_s <- as.factor(as.character(
    group_f[which(group_f != "colon")]))

Signal Expression Filtering

Similar procedure is used to do the signal expression filtering. CPM > 1 sets was employed.

#for filtering purpose data are transformed to log-cpm
myCPM <-cpm(sim_exprs)

#mean and median of library sizes in M
col_sum <- colSums(sim_exprs)
mlib <- mean(col_sum) * 1e-6
mlib
## [1] 51.44286
medlib <- median(col_sum) * 1e-6
medlib
## [1] 50.79996
hist(col_sum * 1e-6, 
     las= 2, col = "navyblue",
     main="Histogram of library sizes analysis 2", 
     xlab="Library size (M)")
abline(v = mlib, col = "grey")
abline(v = medlib, col = "red")

### CPM equal to standard value 1
# threshold to get upper values
thresh <- myCPM > 1
#cpm equal to 1 is a standard threshold

# Genes which are retained are those whose cpm is 
# above thresh in half of the minimum cases of the 
# less abundant group cases
#n samples retained
keepn <- round(min(tabulate(group_f))*0.5,0)
#genes to retain
keepcpm <- rowSums(thresh) >= keepn
#number of genes retained with cpm > 1 approach
sum(keepcpm)
## [1] 18744
#identifying retained genes
keeprow <- attr(keepcpm,"names")[keepcpm==T]
#filter dataset
sim_exprs <- sim_exprs[keepcpm,]
save(sim_exprs, file="data/sim_exprs.RData")

#deleting variables
rm(myCPM, thresh, keepcpm, keepn, keeprow, 
   medlib,mlib,col_sum)

Exploratory analyses

Principal Component Analysis

Again, as well as how they behave in a PCA:

set.seed(1234567)

#### Optional
## Reducing number of cases to reduce computational cost
## If you want to reduce number of cases changes percent
percent <- 1
pca_samples_ids <- sort(sample(x =  1:length(colnames(sim_exprs)),
                      size = length(colnames(sim_exprs))*percent,
                      replace = FALSE))
pca_group <- group_s[pca_samples_ids]

#Proportion in the full and in the reduced datasets of PCA
prop.table(table(pca_group))
## pca_group
##       gbm       lgg 
## 0.2475107 0.7524893
prop.table(table(group_s))
## group_s
##       gbm       lgg 
## 0.2475107 0.7524893
#pca
pca_s <- prcomp(t(sim_exprs[,pca_samples_ids]), 
                center = TRUE, 
                scale = FALSE)

fig_pca.a2 <- fviz_pca_ind(pca_s,
                    geom = "point",
                    col.ind = pca_group
                    )
fig_pca.a2

#deleting variables
rm(pca_s)

Normalization

Normalization with edgeR and voom, as previously done in analysis 1.

#apply countstovoom function
v.S <- countstovoom(sim_exprs, group_s)

save(v.S, file="data/v.S.RData")

Exploratory analysis after Normalization

Principal components analysis

How are they after normalization proccess?

#pca function 
pcanorm_s <- prcomp(t(v.S$E[,pca_samples_ids]), 
                    center = TRUE, 
                    scale = FALSE)

#pca plot
fig_pcanorm.a2 <- fviz_pca_ind(pcanorm_s,
                    geom = "point",
                    col.ind = pca_group)
fig_pcanorm.a2

#deleting variables
rm(pcanorm_s, pca_group, pca_samples_ids)

Linear Model

Again, linmod to create the linear model.

#Building linear model 
fit.cont.S <- linmod(voomobj = v.S,
                   group = group_s,
                   contrast.mod = as.character(c("gbm-lgg"))
                   )

save(fit.cont.S, file="data/fit.cont.S.RData")

DE analysis 2

In this second DE analysis GBM is compared with LGG. So reference levels are taken for LGG and GBM face to this gene-expression levels.

#DEG based on treat function procedure
fit.treat.S <- treat(fit.cont.S,lfc=2)
res.treat.S <- decideTests(fit.treat.S)

#Annotation for fit.treat object
ann <- AnnotationDbi::select(org.Hs.eg.db,
                             keys=rownames(fit.treat.S),
                             keytype= "ENSEMBL",
                             columns=c("ENTREZID","SYMBOL","GENENAME"),
                             multiVals="first")

#removing duplicated in the samples
ann <- ann[!duplicated(ann$ENSEMBL),]

#adding gen labels to fit.treat_genes
fit.treat.S$genes <- ann

#GBM vs LGG
topGLIOMA <- topTreat(fit.treat.S,
                   coef= "gbm-lgg",
                   sort.by= "logFC",
                   number = sum(summary(
                       res.treat.S)[,"gbm-lgg"]))
rownames(topGLIOMA) <- NULL

#potential biomarkers of GBM
head(topGLIOMA, 10)
##            ENSEMBL ENTREZID  SYMBOL                      GENENAME    logFC
## 1  ENSG00000188257     5320 PLA2G2A    phospholipase A2 group IIA 7.244672
## 2  ENSG00000173432     6288    SAA1              serum amyloid A1 6.892728
## 3  ENSG00000029559     3381    IBSP integrin binding sialoprotein 6.363485
## 4  ENSG00000133110    10631   POSTN                     periostin 6.257431
## 5  ENSG00000133048     1116  CHI3L1            chitinase 3 like 1 6.181411
## 6  ENSG00000180818     3226  HOXC10                  homeobox C10 6.103345
## 7  ENSG00000012223     4057     LTF              lactotransferrin 5.904532
## 8  ENSG00000106004     3202   HOXA5                   homeobox A5 5.792235
## 9  ENSG00000105997     3200   HOXA3                   homeobox A3 5.762116
## 10 ENSG00000128713     3237  HOXD11                  homeobox D11 5.584901
##       AveExpr        t      P.Value    adj.P.Val
## 1  -2.2746340 21.25814 3.661198e-78 1.372510e-75
## 2  -2.6388061 20.45380 1.197088e-73 4.079676e-71
## 3  -2.0724767 21.33646 1.324316e-78 5.065913e-76
## 4   0.8749264 18.00815 3.153558e-60 8.097299e-58
## 5   6.0740896 15.48999 4.295449e-47 7.253504e-45
## 6  -2.6839746 17.90647 1.107927e-59 2.768932e-57
## 7   2.1851934 16.82773 5.748725e-54 1.210720e-51
## 8  -2.1635298 18.46242 1.115732e-62 3.121384e-60
## 9  -2.7628577 18.32029 6.558480e-62 1.781625e-59
## 10 -3.6611024 17.97695 4.638708e-60 1.174972e-57
#savedata
writexl::write_xlsx(topGLIOMA, path = "DEAsets/topGLIOMA.xlsx")
save(topGLIOMA, file = "data/topGLIOMA.RData")

#Sum up of all the DEG for comparisons.
summary(res.treat.S)
##        gbm-lgg
## Down       145
## NotSig   18031
## Up         568
#deleting variables
rm(ann, fit.cont.S)

DE genes plots

MD plot

Mean-difference plots as a results of the DEA.

#MD gbm vs lgg
plotMD(fit.treat.S,coef=1,
       status=res.treat.S[,"gbm-lgg"], 
       values=c(-1,1),
       main = "GBM vs LGG",
       cex = 0.1,
       legend = FALSE)
  abline(h=0,col="grey")

Gene sets of DEA2

This chunk consiste on create gene sets for functional analysis afterwards.

p.value <- .05
log.FC <- 2
IDgene <- c("ENTREZID", "ENSEMBL","SYMBOL")
parameter <- c("logFC", "adj.P.Val")

##GLIOMA genesets
#universe geneset
gli.all.genelist <- topGLIOMA[,c(IDgene,parameter)]
gli.all.gene <- gli.all.genelist[,"logFC"]
names(gli.all.gene) <- as.character(gli.all.genelist[,"ENTREZID"])
gli.all.gene <- sort(gli.all.gene, decreasing = TRUE)

#up geneset
gli.up.genelist <- topGLIOMA[topGLIOMA$adj.P.Val < p.value & topGLIOMA$logFC > log.FC,
                      c(IDgene,parameter)]
gli.up.gene <- gli.up.genelist[,"logFC"]
names(gli.up.gene) <- as.character(gli.up.genelist[,"ENTREZID"])
gli.up.gene <- sort(gli.up.gene, decreasing = TRUE)
#down geneset
gli.dn.genelist <- topGLIOMA[topGLIOMA$adj.P.Val < p.value & topGLIOMA$logFC < log.FC,
                      c(IDgene,parameter)]
gli.dn.gene <- gli.dn.genelist[,"logFC"]
names(gli.dn.gene) <- as.character(gli.dn.genelist[,"ENTREZID"])
gli.dn.gene <- sort(gli.dn.gene, decreasing = TRUE)

Venn Diagram

Venn diagram plot in this second analysis was done with all of the result from the analysis 1 and with the results of the second analysis. Again up and down-regulated genes are separated.

#list for venn diagram
venn_list2 <- list(a1.up = unique(c(gbm.up.genelist$ENSEMBL,
                                    lgg.up.genelist$ENSEMBL)),
                   a1.dn = unique(c(gbm.dn.genelist$ENSEMBL,
                                    lgg.dn.genelist$ENSEMBL)),
                   gli.up = gli.up.genelist$ENSEMBL,
                   gli.dn = gli.dn.genelist$ENSEMBL)

v.table2 <- venn(data = venn_list2,
                universe = gli.all.genelist$ENSEMBL,
                small=0.7, showSetLogicLabel=FALSE,
                show.plot=FALSE, intersections=TRUE,
                names = c("analysis 1 up",
                          "analysis 1 down",
                          "GBM vs LGG up",
                          "GBM vs LGG down")
)
isect2 <- attr(v.table2, "intersection")

par(mfrow=c(1,1))
#venn diagram
ggvenn(venn_list2, 
       fill_color = brewer.pal(8, "Dark2"),
       stroke_size = 0.2, set_name_size = 4.5,
       text_size = 3.5)

Specific genes as potential biomarkers of GBM and LGG

Previous TOPGLIOMA dataset can be taken as a list of potential biomarkers but in this section we explore the groups represented in the Venn diagram which are exclusive for some reason.

#specific genes for up and down regulation in GBM excluding common genes with analysis 1
gbm.specific2 <- c(isect2[["GBM vs LGG up"]],isect2[["GBM vs LGG down"]])
length(gbm.specific2)
## [1] 216
gbm.specific.table2 <- topGLIOMA[topGLIOMA$ENSEMBL %in% gbm.specific2,]
head(gbm.specific.table2)
##             ENSEMBL  ENTREZID   SYMBOL                            GENENAME
## 62  ENSG00000037965      3224    HOXC8                         homeobox C8
## 80  ENSG00000213763      <NA>     <NA>                                <NA>
## 81  ENSG00000185834      <NA>     <NA>                                <NA>
## 95  ENSG00000240509 100271003 RPL34P18 ribosomal protein L34 pseudogene 18
## 102 ENSG00000234782      <NA>     <NA>                                <NA>
## 104 ENSG00000178458      <NA>     <NA>                                <NA>
##        logFC    AveExpr        t       P.Value     adj.P.Val
## 62  4.320592 -3.8961988 12.96590  6.208446e-35  6.926852e-33
## 80  4.058815 -0.6514678 30.11758 5.132908e-129 1.924224e-125
## 81  4.034901 -1.0828067 24.34283  9.300956e-96  6.973485e-93
## 95  3.916594 -2.4680458 21.19265  8.563872e-78  3.147475e-75
## 102 3.826277 -0.7988034 23.60810  1.544064e-91  8.512335e-89
## 104 3.822028 -2.3807517 22.59116  1.009917e-85  4.732470e-83
#specific genes for up and down regulation in GBM and up and down analysis 1, respectively
gbm.equal.a1 <- c(isect2[["analysis 1 up:GBM vs LGG up"]],isect2[["analysis 1 down:GBM vs LGG down"]])
length(gbm.equal.a1)
## [1] 158
gbm.equal.a1.table <- topGLIOMA[topGLIOMA$ENSEMBL %in% gbm.equal.a1,]
head(gbm.equal.a1.table)
##            ENSEMBL ENTREZID SYMBOL                      GENENAME    logFC
## 3  ENSG00000029559     3381   IBSP integrin binding sialoprotein 6.363485
## 5  ENSG00000133048     1116 CHI3L1            chitinase 3 like 1 6.181411
## 6  ENSG00000180818     3226 HOXC10                  homeobox C10 6.103345
## 7  ENSG00000012223     4057    LTF              lactotransferrin 5.904532
## 11 ENSG00000168779     6474  SHOX2      short stature homeobox 2 5.581145
## 14 ENSG00000106511     4223  MEOX2         mesenchyme homeobox 2 5.322906
##        AveExpr        t      P.Value    adj.P.Val
## 3  -2.07247666 21.33646 1.324316e-78 5.065913e-76
## 5   6.07408961 15.48999 4.295449e-47 7.253504e-45
## 6  -2.68397456 17.90647 1.107927e-59 2.768932e-57
## 7   2.18519339 16.82773 5.748725e-54 1.210720e-51
## 11 -0.89083646 18.11505 8.393710e-61 2.215939e-58
## 14 -0.03197812 17.41113 4.853955e-57 1.096175e-54
#specific genes for up and down regulation in GBM and down and up analysis 1, respectively
gbm.vic.a1 <- c(isect2[["analysis 1 down:GBM vs LGG up"]],isect2[["analysis 1 up:GBM vs LGG down"]])
length(gbm.vic.a1)
## [1] 338
gbm.vic.a1.table <- topGLIOMA[topGLIOMA$ENSEMBL %in% gbm.vic.a1,]
head(gbm.vic.a1.table)
##            ENSEMBL ENTREZID  SYMBOL                   GENENAME    logFC
## 1  ENSG00000188257     5320 PLA2G2A phospholipase A2 group IIA 7.244672
## 2  ENSG00000173432     6288    SAA1           serum amyloid A1 6.892728
## 4  ENSG00000133110    10631   POSTN                  periostin 6.257431
## 8  ENSG00000106004     3202   HOXA5                homeobox A5 5.792235
## 9  ENSG00000105997     3200   HOXA3                homeobox A3 5.762116
## 10 ENSG00000128713     3237  HOXD11               homeobox D11 5.584901
##       AveExpr        t      P.Value    adj.P.Val
## 1  -2.2746340 21.25814 3.661198e-78 1.372510e-75
## 2  -2.6388061 20.45380 1.197088e-73 4.079676e-71
## 4   0.8749264 18.00815 3.153558e-60 8.097299e-58
## 8  -2.1635298 18.46242 1.115732e-62 3.121384e-60
## 9  -2.7628577 18.32029 6.558480e-62 1.781625e-59
## 10 -3.6611024 17.97695 4.638708e-60 1.174972e-57

Functional analysis DEA2

Similar procedure as functional analysis in DEA1

rWikipatways functional analysis

ORA analysis with wikipathways
### GBM vs LGG 
#ORA pathway up
ewp.gli.up <- enricher(gene = names(gli.up.gene),
                       universe = names(gli.all.gene),
                       pAdjustMethod = "BH",
                       pvalueCutoff = .1,
                       TERM2GENE = wpid2gene,
                       TERM2NAME = wpid2name)
ewp.gli.up <- DOSE::setReadable(ewp.gli.up, org.Hs.eg.db, keyType = "ENTREZID")
head(ewp.gli.up)
##            ID                                 Description GeneRatio  BgRatio
## WP2911 WP2911 miRNA targets in ECM and membrane receptors     9/142  22/6145
## WP3624 WP3624                               Lung fibrosis    10/142  50/6145
## WP129   WP129                   Matrix Metalloproteinases     6/142  20/6145
## WP4891 WP4891            COVID-19 adverse outcome pathway     5/142  13/6145
## WP4754 WP4754                     IL-18 signaling pathway    18/142 239/6145
## WP1533 WP1533                      Vitamin B12 metabolism     7/142  39/6145
##              pvalue     p.adjust       qvalue
## WP2911 5.618371e-10 1.466395e-07 1.206471e-07
## WP3624 1.474743e-07 1.924540e-05 1.583408e-05
## WP129  4.066345e-06 3.537720e-04 2.910647e-04
## WP4891 6.809091e-06 4.271637e-04 3.514475e-04
## WP4754 8.183213e-06 4.271637e-04 3.514475e-04
## WP1533 2.513636e-05 1.093432e-03 8.996172e-04
##                                                                                                           geneID
## WP2911                                             COL3A1/COL6A3/COL4A1/COL6A2/COL5A1/COL1A2/THBS1/COL4A2/COL5A2
## WP3624                                                    MMP9/CXCL8/TIMP1/PTX3/CSF3/PLAU/SPP1/IL6/TERT/SERPINA1
## WP129                                                                           MMP9/TIMP1/MMP1/MMP7/MMP19/MMP11
## WP4891                                                                               CXCL8/IL2RA/CXCL10/CSF3/IL6
## WP4754 MMP9/CXCL8/TIMP1/IL2RA/DES/COL3A1/COL1A1/MMP1/PTX3/CCN4/CCL18/SOCS3/TNFRSF11B/VEGFA/COL1A2/SPP1/IL6/CCNB2
## WP1533                                                                 SAA1/SAA2/SERPINE1/SERPINA3/HBA1/IL6/PLAT
##        Count
## WP2911     9
## WP3624    10
## WP129      6
## WP4891     5
## WP4754    18
## WP1533     7
p1<-barplot(ewp.gli.up, 
            showCategory = 7, 
            font.size = 7,
            label_format = 15)+
  ggtitle("GBM vs LGG DEG up")
ewp.gli.up <- id.table(ewp.gli.up)



#ORA pathway dn
ewp.gli.dn <- enricher(gene = names(gli.dn.gene),
                       universe = names(gli.all.gene),
                       pAdjustMethod = "BH",
                       pvalueCutoff = .1,
                       TERM2GENE = wpid2gene,
                       TERM2NAME = wpid2name)
ewp.gli.dn <- DOSE::setReadable(ewp.gli.dn, org.Hs.eg.db, keyType = "ENTREZID")
head(ewp.gli.dn)
##          ID                   Description GeneRatio  BgRatio      pvalue
## WP455 WP455 GPCRs, Class A Rhodopsin-like      5/38 128/6145 0.001048634
##         p.adjust     qvalue                       geneID Count
## WP455 0.06711257 0.06291803 GPR17/HRH3/HTR1A/SSTR1/PRLHR     5
p2<-barplot(ewp.gli.dn,            
            showCategory = 7, 
            font.size = 7,
            label_format = 15)+
  ggtitle("GBM vs LGG DEG down")
ewp.gli.dn <- id.table(ewp.gli.dn,size = 1)

#plot grid for results
pt <- plot_grid(p1, p2,ncol = 2)

## to collect all functional analysis results
fa.DEA2 <- rbind(ewp.gli.up[,keep.colums.enricher],
                 ewp.gli.dn[,keep.colums.enricher])
GSEA analysis with wikipathways
set.seed(1234567)
## GBM vs LGG GSEA
gwp.gli <- GSEA(geneList = c(gli.up.gene,
                             gli.dn.gene),
                pAdjustMethod = "BH",
                pvalueCutoff = 0.1,
                TERM2GENE = wpid2gene,
                TERM2NAME = wpid2name,
                verbose = FALSE
                   )
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
gwp.gli <- setReadable(gwp.gli, 'org.Hs.eg.db', 'ENTREZID')

#gbm vs lgg gsea wikipathways up
gwp.gli.up <- gwp.gli[which(gwp.gli$NES > 1),]
head(gwp.gli.up)
##            ID             Description setSize enrichmentScore      NES
## WP4754 WP4754 IL-18 signaling pathway      18        0.453979 1.948376
##             pvalue   p.adjust    qvalues rank                   leading_edge
## WP4754 0.008383412 0.07545071 0.07059715  274 tags=78%, list=38%, signal=49%
##                                                                            core_enrichment
## WP4754 MMP9/CXCL8/TIMP1/IL2RA/DES/COL3A1/COL1A1/MMP1/PTX3/CCN4/CCL18/SOCS3/TNFRSF11B/VEGFA
gwp.gli.up <- id.table(gwp.gli.up, size = 1)

#gbm vs lgg gsea wikipathways down
gwp.gli.dn <- gwp.gli[which(gwp.gli$NES < -1),]
head(gwp.gli.dn)
##  [1] ID              Description     setSize         enrichmentScore
##  [5] NES             pvalue          p.adjust        qvalues        
##  [9] rank            leading_edge    core_enrichment
## <0 rows> (or 0-length row.names)
#gwp.gli.dn <- id.table(gwp.gli.dn) #no results


fa.DEA2 <- rbind(fa.DEA2,
                 setNames(gwp.gli.up[,keep.colums.gsea],names(fa.DEA2)))
# no results     setNames(gwp.gli.dn[,keep.colums.gsea],names(fa.DEA2)))

Gene Ontology (GO) functional analysis

Gene ontology functional analysis with clusterProfiler functions enrichGo adn gseGO. Due to the parent-childhood annotation of GO terms, dropGO is applied to avoid general terms, eliminating higher levels of GO.

ORA in GO
#level to drop
level.go <- 3

### GBM vs LGG
## BIOLOGICAL PROCESS (BP)
# ORA GO up BP
ego.gli.up <- enrichGO(gene = gli.up.genelist$ENSEMBL,
                          OrgDb = org.Hs.eg.db,
                          keyType = 'ENSEMBL',
                          ont = "BP",
                          pAdjustMethod = "BH",
                          pvalueCutoff  = 0.05,
                          readable = TRUE)

ego.gli.up <- setReadable(dropGO(ego.gli.up,level = 1:level.go),
                            org.Hs.eg.db, keyType = "ENTREZID")
head(ego.gli.up)
##                    ID                              Description GeneRatio
## GO:0030198 GO:0030198        extracellular matrix organization    37/281
## GO:0043062 GO:0043062     extracellular structure organization    37/281
## GO:0048704 GO:0048704  embryonic skeletal system morphogenesis    20/281
## GO:0048706 GO:0048706    embryonic skeletal system development    22/281
## GO:0009952 GO:0009952 anterior/posterior pattern specification    26/281
## GO:0048705 GO:0048705            skeletal system morphogenesis    26/281
##              BgRatio       pvalue     p.adjust       qvalue
## GO:0030198 442/21081 4.084391e-19 7.454160e-16 6.100502e-16
## GO:0043062 443/21081 4.405532e-19 7.454160e-16 6.100502e-16
## GO:0048704 100/21081 3.280173e-18 3.700036e-15 3.028118e-15
## GO:0048706 136/21081 8.030503e-18 6.793805e-15 5.560066e-15
## GO:0009952 234/21081 1.092500e-16 6.161701e-14 5.042751e-14
## GO:0048705 234/21081 1.092500e-16 6.161701e-14 5.042751e-14
##                                                                                                                                                                                                                                             geneID
## GO:0030198 IBSP/POSTN/MMP9/TIMP1/PDPN/COL3A1/COL1A1/MMP1/FMOD/PTX3/SERPINE1/MMP7/LOX/COL8A1/ADAM12/COL6A3/COL4A1/COL6A2/COL5A1/ANXA2/TNFRSF11B/MMP19/LOXL1/LUM/MFAP2/TGFBI/COL1A2/SPP1/DPP4/THBS1/ADAMTS18/IL6/COL4A2/COL5A2/MMP11/SERPINH1/EFEMP2
## GO:0043062 IBSP/POSTN/MMP9/TIMP1/PDPN/COL3A1/COL1A1/MMP1/FMOD/PTX3/SERPINE1/MMP7/LOX/COL8A1/ADAM12/COL6A3/COL4A1/COL6A2/COL5A1/ANXA2/TNFRSF11B/MMP19/LOXL1/LUM/MFAP2/TGFBI/COL1A2/SPP1/DPP4/THBS1/ADAMTS18/IL6/COL4A2/COL5A2/MMP11/SERPINH1/EFEMP2
## GO:0048704                                                                                                               HOXA5/HOXA3/SHOX2/HOXC11/HOXA2/HOXD10/HOXA4/HOXC9/HOXB3/HOXA6/HOXA7/HOXB4/HOXA9/HOXD9/HOXB2/HOXA1/OSR2/HOXA11/HOXB7/HOXC4
## GO:0048706                                                                                                  HOXA5/HOXA3/SHOX2/HOXC11/HOXA2/HOXD10/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA7/HOXB4/HOXA9/HOXD9/COL1A1/HOXB2/HOXA1/OSR2/HOXA11/HOXB7/HOXC4
## GO:0009952                                                                        HOXC10/HOXA5/HOXA3/HOXD13/MEOX2/HOXC11/HOXA2/HOXD10/HOXC13/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/EN1/HOXC8/HOXB4/HOXA9/HOXD9/HOXB2/GATA4/HOXA11/HOXB7/HOXC4
## GO:0048705                                                                            LTF/HOXA5/HOXA3/SHOX2/HOXC11/HOXA2/HOXD10/HOXA4/HOXC9/HOXB3/HOXA6/HOXA7/HOXC8/STC1/HOXB4/HOXA9/HOXD9/COL1A1/HOXB2/HOXA1/OSR2/HOXA11/HOXB7/HOXC4/MGP/SERPINH1
##            Count
## GO:0030198    37
## GO:0043062    37
## GO:0048704    20
## GO:0048706    22
## GO:0009952    26
## GO:0048705    26
ego.gli.up <- id.table(ego.gli.up)

# ORA GO down BP
ego.gli.dn <- enrichGO(gene = gli.dn.genelist$ENSEMBL,
                          OrgDb = org.Hs.eg.db,
                          keyType = 'ENSEMBL',
                          ont = "BP",
                          pAdjustMethod = "BH",
                          pvalueCutoff  = 0.05,
                          readable = TRUE)
ego.gli.dn <- setReadable(dropGO(ego.gli.dn,level = 1:level.go),
                            org.Hs.eg.db, keyType = "ENTREZID")
head(ego.gli.dn)
##                    ID                                               Description
## GO:0060078 GO:0060078             regulation of postsynaptic membrane potential
## GO:0099565 GO:0099565              chemical synaptic transmission, postsynaptic
## GO:0042391 GO:0042391                          regulation of membrane potential
## GO:0050890 GO:0050890                                                 cognition
## GO:0048167 GO:0048167                         regulation of synaptic plasticity
## GO:0098742 GO:0098742 cell-cell adhesion via plasma-membrane adhesion molecules
##            GeneRatio   BgRatio       pvalue     p.adjust       qvalue
## GO:0060078      8/99 156/21081 7.272040e-07 0.0008540246 0.0007574955
## GO:0099565      7/99 118/21081 1.400040e-06 0.0008540246 0.0007574955
## GO:0042391     12/99 473/21081 2.237610e-06 0.0009099616 0.0008071100
## GO:0050890     10/99 349/21081 5.741818e-06 0.0014298096 0.0012682004
## GO:0048167      8/99 213/21081 7.414808e-06 0.0014298096 0.0012682004
## GO:0098742      9/99 288/21081 8.649168e-06 0.0014298096 0.0012682004
##                                                                                   geneID
## GO:0060078                            GABRG1/CBLN1/GLRA3/CUX2/CHRNA4/GABRB3/SHANK2/RIMS2
## GO:0099565                                   CBLN1/GLRA3/CUX2/CHRNA4/GABRB3/SHANK2/RIMS2
## GO:0042391 GABRG1/CACNG2/CBLN1/GLRA3/SLC1A6/CUX2/CHRNA4/GABRB3/KCNB1/SHANK2/RIMS2/CTNNA3
## GO:0050890                     JPH3/TNR/CUX2/AFF2/CHRNA4/HRH3/SHANK2/PAK5/RASGRF1/SHISA7
## GO:0048167                              CBLN1/JPH3/TNR/KCNB1/SHANK2/RIMS2/RASGRF1/SHISA7
## GO:0098742                 PCDH15/CBLN1/PTPRT/DSCAML1/IGFN1/CDH18/PCDH11X/CDHR1/IL1RAPL1
##            Count
## GO:0060078     8
## GO:0099565     7
## GO:0042391    12
## GO:0050890    10
## GO:0048167     8
## GO:0098742     9
ego.gli.dn <- id.table(ego.gli.dn)



## to collect all functional analysis results 
fa.DEA2 <- rbind(fa.DEA2,
                  ego.gli.up[,keep.colums.enricher], 
                  ego.gli.dn[,keep.colums.enricher])
GSEA in GO
set.seed(1234567)

### GBM vs LGG
## BIOLOGICAL PROCESS (BP)
# GSEA GO BP
ggo.gli.BP <- gseGO(geneList = c(gli.up.gene,
                                 gli.dn.gene),
                    OrgDb = org.Hs.eg.db,
                    ont = "BP",
                    pvalueCutoff = 0.05,
                    verbose = FALSE)
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
## Warning in fgseaMultilevel(...): For some pathways, in reality P-values are less
## than 1e-10. You can set the `eps` argument to zero for better estimation.
ggo.gli.BP <- setReadable(ggo.gli.BP, 'org.Hs.eg.db', 'ENTREZID')

#gbm vs lgg gsea GO up
ggo.gli.up <- ggo.gli.BP[which(ggo.gli.BP$NES > 1),]
head(ggo.gli.up)
##                    ID                                      Description setSize
## GO:0003002 GO:0003002                                  regionalization      34
## GO:0007389 GO:0007389                    pattern specification process      37
## GO:0009952 GO:0009952         anterior/posterior pattern specification      28
## GO:0001501 GO:0001501                      skeletal system development      51
## GO:0009790 GO:0009790                               embryo development      59
## GO:0006357 GO:0006357 regulation of transcription by RNA polymerase II      68
##            enrichmentScore      NES       pvalue     p.adjust      qvalues rank
## GO:0003002       0.6648510 3.577618 1.000000e-10 2.486667e-08 1.673684e-08  112
## GO:0007389       0.6431045 3.565661 1.000000e-10 2.486667e-08 1.673684e-08  112
## GO:0009952       0.6931071 3.454760 1.000000e-10 2.486667e-08 1.673684e-08  112
## GO:0001501       0.5323760 3.278901 3.288976e-10 6.133941e-08 4.128531e-08  115
## GO:0009790       0.4817326 3.068515 2.731731e-09 4.075742e-07 2.743233e-07  176
## GO:0006357       0.4488886 3.017556 6.304403e-09 5.663920e-07 3.812177e-07  112
##                              leading_edge
## GO:0003002 tags=71%, list=16%, signal=62%
## GO:0007389 tags=68%, list=16%, signal=60%
## GO:0009952 tags=75%, list=16%, signal=66%
## GO:0001501 tags=55%, list=16%, signal=50%
## GO:0009790 tags=59%, list=25%, signal=49%
## GO:0006357 tags=46%, list=16%, signal=42%
##                                                                                                                                                                                                                     core_enrichment
## GO:0003002                                                                   HOXC10/HOXA5/HOXA3/HOXD11/HOXD13/MEOX2/HOXC11/HOXA2/NKX2-5/HOXD10/HOXC13/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/EN1/HOXC8/DMRTA2/HOXB4/HOXA9/HOXD9
## GO:0007389                                                              HOXC10/HOXA5/HOXA3/HOXD11/HOXD13/MEOX2/HOXC11/HOXA2/NKX2-5/HOXD10/HOXC13/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/EN1/HOXC8/STC1/DMRTA2/HOXB4/HOXA9/HOXD9
## GO:0009952                                                                                        HOXC10/HOXA5/HOXA3/HOXD13/MEOX2/HOXC11/HOXA2/HOXD10/HOXC13/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/EN1/HOXC8/HOXB4/HOXA9/HOXD9
## GO:0001501                                                CHI3L1/HOXC10/LTF/HOXA5/HOXA3/SHOX2/HOXD13/HOXC11/HOXA2/HOXD10/MMP9/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/EN1/HOXC8/HMGA2/TIMP1/STC1/COL3A1/HOXB4/HOXA9/HOXD9/COL1A1
## GO:0009790 HOXC10/HOXA5/HOXA3/SHOX2/HOXD13/MEOX2/HOXC11/HOXA2/NKX2-5/HOXD10/MMP9/HOXA4/HOXC9/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/CHRNA9/EN1/HMGA2/CXCL8/HOXB4/HOXA9/HOXD9/COL1A1/HOXB2/LIF/GATA4/ADM/RARRES2/PITX1/COL8A1/C6orf141/HOXA1
## GO:0006357                            HOXC10/HOXA5/HOXA3/HOXD11/SHOX2/HOXD13/MEOX2/OTP/HOXC11/HOXA2/NKX2-5/HOXD10/HOXC13/HOXA4/HOXC9/PAX3/HOXC6/HOXB3/HOXA6/HOXA10/HOXA7/EN1/HOXC8/HMGA2/CA9/HOXB13/DMRTA2/CXCL10/HOXB4/HOXA9/HOXD9
ggo.gli.up <- id.table(ggo.gli.up)

#gbm vs lgg gsea GO down
ggo.gli.dn <- ggo.gli.BP[which(ggo.gli.BP$NES < -1),]
head(ggo.gli.dn)
##                    ID                                  Description setSize
## GO:0007268 GO:0007268               chemical synaptic transmission      23
## GO:0098916 GO:0098916         anterograde trans-synaptic signaling      23
## GO:0099536 GO:0099536                           synaptic signaling      25
## GO:0099537 GO:0099537                     trans-synaptic signaling      25
## GO:0050804 GO:0050804 modulation of chemical synaptic transmission      14
## GO:0099177 GO:0099177       regulation of trans-synaptic signaling      15
##            enrichmentScore       NES       pvalue     p.adjust      qvalues
## GO:0007268      -0.6082573 -3.606622 1.936621e-08 1.203933e-06 8.103232e-07
## GO:0098916      -0.6082573 -3.606622 1.936621e-08 1.203933e-06 8.103232e-07
## GO:0099536      -0.5704739 -3.468025 3.754400e-08 1.217732e-06 8.196105e-07
## GO:0099537      -0.5704739 -3.468025 3.754400e-08 1.217732e-06 8.196105e-07
## GO:0050804      -0.6952607 -3.172330 1.970209e-07 4.082710e-06 2.747923e-06
## GO:0099177      -0.6217264 -2.963727 1.139107e-05 1.196864e-04 8.055656e-05
##            rank                   leading_edge
## GO:0007268  139 tags=78%, list=19%, signal=65%
## GO:0098916  139 tags=78%, list=19%, signal=65%
## GO:0099536  144 tags=76%, list=20%, signal=63%
## GO:0099537  144 tags=76%, list=20%, signal=63%
## GO:0050804  139 tags=86%, list=19%, signal=70%
## GO:0099177  139 tags=80%, list=19%, signal=66%
##                                                                                                                    core_enrichment
## GO:0007268          NRG3/SHISA7/RASGRF1/RIMS2/SHANK2/KCNB1/HRH3/GABRB3/CHRNA4/CUX2/SLC1A6/HTR1A/TNR/JPH3/GLRA3/CBLN1/CACNG2/GABRG1
## GO:0098916          NRG3/SHISA7/RASGRF1/RIMS2/SHANK2/KCNB1/HRH3/GABRB3/CHRNA4/CUX2/SLC1A6/HTR1A/TNR/JPH3/GLRA3/CBLN1/CACNG2/GABRG1
## GO:0099536 IL1RAPL1/NRG3/SHISA7/RASGRF1/RIMS2/SHANK2/KCNB1/HRH3/GABRB3/CHRNA4/CUX2/SLC1A6/HTR1A/TNR/JPH3/GLRA3/CBLN1/CACNG2/GABRG1
## GO:0099537 IL1RAPL1/NRG3/SHISA7/RASGRF1/RIMS2/SHANK2/KCNB1/HRH3/GABRB3/CHRNA4/CUX2/SLC1A6/HTR1A/TNR/JPH3/GLRA3/CBLN1/CACNG2/GABRG1
## GO:0050804                                                NRG3/SHISA7/RASGRF1/RIMS2/SHANK2/KCNB1/CHRNA4/CUX2/TNR/JPH3/CBLN1/CACNG2
## GO:0099177                                                NRG3/SHISA7/RASGRF1/RIMS2/SHANK2/KCNB1/CHRNA4/CUX2/TNR/JPH3/CBLN1/CACNG2
ggo.gli.dn <- id.table(ggo.gli.dn)



## to collect all functional analysis results
fa.DEA2 <- rbind(fa.DEA2,
                  setNames(ggo.gli.up[,keep.colums.gsea],names(fa.DEA2)),
                  setNames(ggo.gli.dn[,keep.colums.gsea],names(fa.DEA2)))

Kyoto Encyclopedia of Genes and Genomes (KEGG) functional analysis

ORA in KEGG
### GBM vs LGG
# ORA KEGG up
ekg.gli.up <- enrichKEGG(gene = names(gli.up.gene),
                         organism = "hsa",
                         pAdjustMethod = "BH",
                         universe = names(gli.all.gene),
                         pvalueCutoff = 0.05)

ekg.gli.up <- setReadable(ekg.gli.up, org.Hs.eg.db, keyType = "ENTREZID")
head(ekg.gli.up)
##                ID                                          Description
## hsa04974 hsa04974                     Protein digestion and absorption
## hsa04060 hsa04060               Cytokine-cytokine receptor interaction
## hsa04610 hsa04610                  Complement and coagulation cascades
## hsa05202 hsa05202              Transcriptional misregulation in cancer
## hsa04512 hsa04512                             ECM-receptor interaction
## hsa04933 hsa04933 AGE-RAGE signaling pathway in diabetic complications
##          GeneRatio  BgRatio       pvalue     p.adjust       qvalue
## hsa04974    11/121  75/6318 1.400791e-07 1.361054e-05 1.209313e-05
## hsa04060    16/121 173/6318 1.463499e-07 1.361054e-05 1.209313e-05
## hsa04610     8/121  56/6318 9.449752e-06 4.793335e-04 4.258934e-04
## hsa05202    13/121 161/6318 1.065447e-05 4.793335e-04 4.258934e-04
## hsa04512     9/121  78/6318 1.544544e-05 4.793335e-04 4.258934e-04
## hsa04933    10/121  98/6318 1.546237e-05 4.793335e-04 4.258934e-04
##                                                                                                            geneID
## hsa04974                               COL3A1/COL1A1/COL8A1/COL6A3/COL4A1/COL6A2/COL5A1/COL1A2/DPP4/COL4A2/COL5A2
## hsa04060 CXCL8/IL2RA/IL13RA2/CXCL10/GDF15/LIF/CCL18/TNFRSF12A/TNFRSF11B/CSF3/CXCL11/TNFSF14/IL1RN/CLCF1/IL6/IL1R2
## hsa04610                                                  SERPINA5/SERPINE1/F13A1/PLAU/BDKRB2/PLAUR/PLAT/SERPINA1
## hsa05202                                MMP9/PAX3/HOXA10/HMGA2/CXCL8/HOXA9/HOXA11/PLAU/IL6/IL1R2/IGFBP3/PLAT/H3-5
## hsa04512                                                IBSP/COL1A1/COL6A3/COL4A1/COL6A2/COL1A2/SPP1/THBS1/COL4A2
## hsa04933                                         CXCL8/COL3A1/COL1A1/SERPINE1/COL4A1/VEGFA/NOX4/COL1A2/IL6/COL4A2
##          Count
## hsa04974    11
## hsa04060    16
## hsa04610     8
## hsa05202    13
## hsa04512     9
## hsa04933    10
ekg.gli.up <- id.table(ekg.gli.up, size = 16)

# ORA KEGG down
ekg.gli.dn <- enrichKEGG(gene = names(gli.dn.gene),
                         organism = "hsa",
                         pAdjustMethod = "BH",
                         universe = names(gli.all.gene),
                         pvalueCutoff = 0.05)

ekg.gli.dn <- setReadable(ekg.gli.dn, org.Hs.eg.db, keyType = "ENTREZID")
head(ekg.gli.dn)
##                ID                             Description GeneRatio  BgRatio
## hsa04080 hsa04080 Neuroactive ligand-receptor interaction      9/39 208/6318
## hsa05033 hsa05033                      Nicotine addiction      3/39  33/6318
##                pvalue     p.adjust       qvalue
## hsa04080 3.431469e-06 0.0002916749 0.0002781296
## hsa05033 1.043998e-03 0.0443699285 0.0423094055
##                                                           geneID Count
## hsa04080 HRH3/GABRB3/VIPR2/CHRNA4/HTR1A/GLRA3/GABRG1/SSTR1/PRLHR     9
## hsa05033                                    GABRB3/CHRNA4/GABRG1     3
ekg.gli.dn <- id.table(ekg.gli.dn, size = 2)

## to collect all functional analysis results
fa.DEA2 <- rbind(fa.DEA2,
                  ekg.gli.up[,keep.colums.enricher], 
                  ekg.gli.dn[,keep.colums.enricher])
GSEA in KEGG
set.seed(1234567)

##GBM vs LGG
#GSEA in KEGG
gkg.gli <- gseKEGG(geneList = c(gli.up.gene,
                                gli.dn.gene),
                   organism = "hsa",
                   pAdjustMethod = "BH",
                   pvalueCutoff = 0.05,
                   verbose = FALSE
                   )
## Warning in preparePathwaysAndStats(pathways, stats, minSize, maxSize,
## gseaParam, : There are duplicate gene names, fgsea may produce unexpected
## results.
gkg.gli <- setReadable(gkg.gli, 'org.Hs.eg.db', 'ENTREZID')

#gbm vs lgg gsea kegg up
gkg.gli.up <- gkg.gli[which(gkg.gli$NES > 1),]
head(gkg.gli.up)
##  [1] ID              Description     setSize         enrichmentScore
##  [5] NES             pvalue          p.adjust        qvalues        
##  [9] rank            leading_edge    core_enrichment
## <0 rows> (or 0-length row.names)
#gkg.gli.up <- id.table(gkg.gli.up) # no results

#gbm vs lgg gsea kegg down
gkg.gli.dn <- gkg.gli[which(gkg.gli$NES < -1),]
head(gkg.gli.dn)
##                ID                             Description setSize
## hsa04080 hsa04080 Neuroactive ligand-receptor interaction      16
##          enrichmentScore       NES      pvalue   p.adjust    qvalues rank
## hsa04080      -0.4788222 -2.357797 0.001063839 0.01276607 0.01119831   87
##                            leading_edge
## hsa04080 tags=56%, list=12%, signal=51%
##                                                  core_enrichment
## hsa04080 HRH3/GABRB3/VIPR2/CHRNA4/HTR1A/GLRA3/GABRG1/SSTR1/PRLHR
gkg.gli.dn <- id.table(gkg.gli.dn, size = 1)


fa.DEA2 <- rbind(fa.DEA2,
                 #setNames(gwp.gli.up[,keep.colums.gsea], names(fa.DEA2)),
                 setNames(gkg.gli.dn[,keep.colums.gsea],names(fa.DEA2)))
writexl::write_xlsx(fa.DEA2, path = "DEAsets/fa.DEA2.xlsx")

Wordcloud functional analysis from DEA2

As the same as analysis 1, in this section different wordclouds are shown from proccess and genes involve in the proccess.

#### Wordclouds for FA2 ####
### acronyms
## databases
# wp = wikipathways
# go = gene ontology
# kg = KEGG
##cases
# gbm = GBM vs colon
# lgg = LGG vs colon
# gli = GBM vs LGG

### WIKIPATHWAYS ####
## GLIOMAS: GBM vs LGG
#up-regulated
fa.wp.gli.up.2<- proccess.table(fa.table = fa.DEA2, 
                           database = "wp", 
                           cases = "gli", 
                           reg = "up")
head(fa.wp.gli.up.2)
##                                                          t Freq
## 8                                  IL-18 signaling pathway    2
## 1                      Complement and Coagulation Cascades    1
## 2                         COVID-19 adverse outcome pathway    1
## 3                                Endochondral Ossification    1
## 4       Endochondral Ossification with Skeletal Dysplasias    1
## 5 Extracellular vesicles in the crosstalk of cardiac cells    1
getwordcloud(fa.table = fa.DEA2, 
             database = "wp",
             cases = "gli", 
             reg = "up")

#down-regulated
fa.wp.gli.dn.2<- proccess.table(fa.table = fa.DEA2, 
                           database = "wp", 
                           cases = "gli", 
                           reg = "dn")
head(fa.wp.gli.dn.2)
##                               t Freq
## 1 GPCRs, Class A Rhodopsin-like    1
getwordcloud(fa.table = fa.DEA2, 
             database = "wp",
             cases = "gli", 
             reg = "dn")

## GENE ONTOLOGY ####
## GLIOMAS: GBM vs LGG
#up-regulated
fa.go.gli.up.2<- proccess.table(fa.table = fa.DEA2, 
                           database = "go", 
                           cases = "gli", 
                           reg = "up")
head(fa.go.gli.up.2)
##                                           t Freq
## 1  anterior/posterior pattern specification    2
## 24                          regionalization    2
## 2                     appendage development    1
## 3                      biosynthetic process    1
## 4                     cartilage development    1
## 5              collagen fibril organization    1
getwordcloud(fa.table = fa.DEA2, 
             database = "go",
             cases = "gli", 
             reg = "up")

#down-regulated
fa.go.gli.dn.2<- proccess.table(fa.table = fa.DEA2, 
                           database = "go", 
                           cases = "gli", 
                           reg = "dn")
head(fa.go.gli.dn.2)
##                                                            t Freq
## 2  cell-cell adhesion via plasma-membrane adhesion molecules    2
## 6                                                  cognition    2
## 26                          regulation of membrane potential    2
## 29             regulation of postsynaptic membrane potential    2
## 33                                      synapse organization    2
## 1                       anterograde trans-synaptic signaling    1
getwordcloud(fa.table = fa.DEA2, 
             database = "go",
             cases = "gli", 
             reg = "dn")

## KEGG ####
## GLIOMAS: GBM vs LGG
#up-regulated
fa.kg.gli.up.2<- proccess.table(fa.table = fa.DEA2, 
                           database = "kg", 
                           cases = "gli", 
                           reg = "up")
head(fa.kg.gli.up.2)
##                                                      t Freq
## 1 AGE-RAGE signaling pathway in diabetic complications    1
## 2                                           Amoebiasis    1
## 3                                       Bladder cancer    1
## 4                  Complement and coagulation cascades    1
## 5               Cytokine-cytokine receptor interaction    1
## 6                             ECM-receptor interaction    1
getwordcloud(fa.table = fa.DEA2, 
             database = "kg",
             cases = "gli", 
             reg = "up")

#down-regulated
fa.kg.gli.dn.2<- proccess.table(fa.table = fa.DEA2, 
                           database = "kg", 
                           cases = "gli", 
                           reg = "dn")
head(fa.kg.gli.dn.2)
##                                         t Freq
## 1 Neuroactive ligand-receptor interaction    2
## 2                      Nicotine addiction    1
getwordcloud(fa.table = fa.DEA2, 
             database = "kg",
             cases = "gli", 
             reg = "dn")

Machine Learning analysis

In this section are run several algorithms of machine learning with a classification aim. The algorithms are the following:

From supervised analysis method:
+ K nearest neighbourhood + Artificial Neural Network + Support Vector Machine + Random Forest

From non-supervised analysis method: + k mean + hierarchical clustering + Gaussian

Every algorithms will be run with different gene sets and also contains internal parameter which will be adjusted. Four analysis are done with each algorithm:
+ All genes from analysis 1: GBM, LGG and colon cases.
+ DEG for analysis 1: GBM vs colon and LGG vs colon DEA1. + All genes for analysis 2: GBM and LGG cases.
+ DEG for analysis 2: GBM vs LGG DEA2.

library(caret) #evaluation
library(kableExtra) #tables
library(class)#knn
library(mclust) #GBM
library(dbscan)

The next chunk is optional to reduce the number of cases for the algorithm execution. Cases could be reduced due to computational cost. It is optional but it’s also recommended for high-cost computational algorithm.

##Case reduction for ML analysis is optional
set.seed(987654321)
#optional percentage
percent <- 1

#Cases for FULL data
clust.ids.F <- sort(sample(x =  1:length(colnames(v.F$E)),
                      size = length(colnames(v.F$E))*percent,
                      replace = FALSE))
clust.F <- group_f[clust.ids.F]
prop.table(table(clust.F))
## clust.F
##     colon       gbm       lgg 
## 0.4256536 0.1421569 0.4321895
prop.table(table(group_f))
## group_f
##     colon       gbm       lgg 
## 0.4256536 0.1421569 0.4321895
#Cases for SIM data
clust.ids.S <- which(clust.ids.F <= length(colnames(v.S$E)))
clust.S <- group_s[clust.ids.S]

##Assigning number case for patients
#it will be used for plots in ML analysis
# FULL data
patients.id <- c(paste(levels(group_f)[2], 1:length(group_f[which(group_f == "gbm")]),sep = "_"),
                 paste(levels(group_f)[3], 1:length(group_f[which(group_f == "lgg")]),sep = "_"),
                 paste(levels(group_f)[1], 1:length(group_f[which(group_f == "colon")]),sep = "_")
)
colnames(v.F$E) <- patients.id

#SIM data
patients.id <- patients.id[1:length(group_s)]
colnames(v.S$E) <- patients.id

Moreover, we need to define some genesets for the ML analysis

#ALL genes from analysis 1
all.a1 <- gbm.all.genelist$ENSEMBL

#Differential expresed genes from DEA1
deg.a1 <- unique(c(gbm.up.genelist$ENSEMBL,
                   gbm.dn.genelist$ENSEMBL,
                   lgg.up.genelist$ENSEMBL,
                   lgg.dn.genelist$ENSEMBL
                   )
                 )
length(deg.a1)
## [1] 6661
#ALL genes from analysis 2
all.a2 <- gli.all.genelist$ENSEMBL

#Differential expresed genes from DEA2
deg.a2 <- unique(c(gli.up.genelist$ENSEMBL,
                     gli.dn.genelist$ENSEMBL
                     )
                   )
length(deg.a2)
## [1] 713
#variables to save supervised analysis
reset.var.s <- function(){
  cont.mat <<- data.frame()
  parametro <<- c()
  accuracy <<- c()
  kappa.e <<- c()
}

Machine Learning for analysis 1

#This chunk save a variable for the supervised analysis.
#col_cont.mat
str_cancer <- c("colon","gbm","lgg")
count <- 1
col_cont.mat <- c()
for (i in 1:3){
  for (j in 1:3){
    col_cont.mat[count] <- paste(str_cancer[i],str_cancer[j], sep = "_as_")
    count <- count + 1
  }
}

Supervised analysis method

For supervised analysis 1 we need to build train and test dataset.

#### Building training and test dataset.
#dataset train and test
set.seed(123456789)

#numbers of data for each dataset
n_train <- round(0.67*length(clust.F),0)
n_test <- round(0.33*length(clust.F),0)

#ids for each dataset
train_ids <- sort(sample(x = 1:length(clust.F),size = n_train,replace = FALSE))
test_ids <- c(1:length(clust.F))[-train_ids]

#building training and test dataset
train_data <- list(all.F = v.F$E[all.a1,train_ids],
                   DEG.F = v.F$E[deg.a1,train_ids])
test_data <- list(all.F = v.F$E[all.a1,test_ids],
                   DEG.F = v.F$E[deg.a1,test_ids])

#labelling dataset
train_label <- clust.F[train_ids]
test_label <- clust.F[test_ids]

#proportions
#train dataset
round(prop.table(table(train_label)),3)*100
## train_label
## colon   gbm   lgg 
##  43.2  14.3  42.6
#test dataset
round(prop.table(table(test_label)),3)*100
## test_label
## colon   gbm   lgg 
##  41.3  14.1  44.6
#dataset
round(prop.table(table(clust.F)),3)*100
## clust.F
## colon   gbm   lgg 
##  42.6  14.2  43.2
#short function to extract data train and test
getset <- function(set){
  train <- train_data[[set]]
  test <- test_data[[set]]
  data <- list(train = train,
               test = test)
  return(data)
}

K nearest neighbourhood (Knn)

### Knn algorithm
#Evaluating models with different k values (neighbours)
ks <- c(3,5)

#function to evaluate knn models
eval.knn <-function(model, geneset, n.mod,
                      cm = cont.mat,parameter.e = parametro, 
                      accuracy.e = accuracy, kappa = kappa.e){
  modelos <- c(rep(model,n.mod))
  gens <- c(rep(geneset,n.mod))
  resum <- data.frame(modelos, parameter.e, gens,
                    round(accuracy.e,3), round(kappa.e,3), 
                    cont.mat)
  names(resum) <- c("model", "parameter", "geneset", 
                  "accuracy", "kappa", col_cont.mat)
  return(resum)
}

#### DATA all.F ####
## ALL genes analysis FULL data
data <- getset(set = "all.F")

#reseting variables
reset.var.s()

#for loop to execute knn algorithm with differen k values
j <- 0 #counter
for (i in ks){
  j <- j +1 #add 1 to counter
  #execution of knn value k = i
  test_pred <- knn(train = t(data$train), 
                   test = t(data$test), 
                   cl = train_label, 
                   k=i, 
                   prob = TRUE)
  
  #confusion matrix
  conf_knn <- confusionMatrix(test_pred, test_label)
  
  #variables of confusion matrix to save the model
  parametro[j] <- paste("k = ", i)
  cont.mat<- rbind(cont.mat, c(conf_knn[["table"]]))
  accuracy[j] <- conf_knn[["overall"]][["Accuracy"]]
  kappa.e[j] <- conf_knn[["overall"]][["Kappa"]]
}

#evaluation
resum <- eval.knn(model = "kNN",
                  n.mod = 2,
                  geneset = "ALL",
                  parameter.e = parametro,
                  kappa = kappa.e)
#tabla from knn
knn.all.F <- resum
knn.all.F
##   model parameter geneset accuracy kappa colon_as_colon colon_as_gbm
## 1   kNN    k =  3     ALL    0.980 0.967            167            0
## 2   kNN    k =  5     ALL    0.985 0.976            167            0
##   colon_as_lgg gbm_as_colon gbm_as_gbm gbm_as_lgg lgg_as_colon lgg_as_gbm
## 1            0            0         51          6            0          2
## 2            0            0         52          5            0          1
##   lgg_as_lgg
## 1        178
## 2        179
#### DATA DEG.F ####
## DEG genes analysis FULL data
data <- getset(set = "DEG.F")

#reseting variables
reset.var.s()

#for loop to execute knn algorithm with differen k values
j <- 0 #counter
for (i in ks){
  j <- j +1 #add 1 to counter
  #execution of knn value k = i
  test_pred <- knn(train = t(data$train), 
                   test = t(data$test), 
                   cl = train_label, 
                   k=i, 
                   prob = TRUE)
  
  #confusion matrix
  conf_knn <- confusionMatrix(test_pred, test_label)
  
  #variables of confusion matrix to save the model
  parametro[j] <- paste("k = ", i)
  cont.mat<- rbind(cont.mat, c(conf_knn[["table"]]))
  accuracy[j] <- conf_knn[["overall"]][["Accuracy"]]
  kappa.e[j] <- conf_knn[["overall"]][["Kappa"]]
}

#evaluation
#evaluation for models of knn

resum <- eval.knn(model = "kNN",
                  n.mod = 2,
                  geneset = "DEG",
                  parameter.e = parametro,
                  kappa = kappa.e)
#tabla from knn
knn.DEG.F <- resum
knn.DEG.F
##   model parameter geneset accuracy kappa colon_as_colon colon_as_gbm
## 1   kNN    k =  3     DEG    0.980 0.968            167            0
## 2   kNN    k =  5     DEG    0.983 0.972            167            0
##   colon_as_lgg gbm_as_colon gbm_as_gbm gbm_as_lgg lgg_as_colon lgg_as_gbm
## 1            0            0         53          4            0          4
## 2            0            0         52          5            0          2
##   lgg_as_lgg
## 1        176
## 2        178

Non-Supervised analysis method

K mean

### Kmean algorithm
#function to evaluate kmean models
eval.km <- function(result, group.clust,
                    geneset, parameter.e,
                    model = "kmeans"){
  kmeans <- result
  group <- group.clust
                    
  #assign each cluster with the level group
  km_eval <- data.frame(cluster = kmeans,
                        group = group)

  levels_new_group <- c()
  for (i in 1:3){
    km_eval$new_group[km_eval$group == levels(group)[i]] <- 
      which.max(tabulate(km_eval$cluster[km_eval$group == levels(group)[i]]))
  }
  for (i in 1:3){
    levels_new_group[i] <- as.character(km_eval$group[which(km_eval$new_group == i)])[2]
  }
  
  actual_label <- factor(km_eval$group, levels = levels_new_group)
  predict_cluster <- as.factor(km_eval$cluster)
  levels(predict_cluster) <- levels_new_group

  #reseting variables
  reset.var.s()
  
  #to evaluate confusionmatrix
  con_mat <- confusionMatrix(predict_cluster,actual_label)
  cont.mat<- rbind(cont.mat,c(con_mat[["table"]]))
  accuracy <- con_mat[["overall"]][["Accuracy"]]
  kappa.e <- con_mat[["overall"]][["Kappa"]]

  #resumen
  resum <- data.frame(model, parameter.e, geneset,
                    round(accuracy,3), round(kappa.e,3), 
                    cont.mat)
  cont.mat_names <- c()
  for (col in colnames(con_mat[["table"]])){
    for (row in rownames(con_mat[["table"]])){
      cont.mat_names <- append(cont.mat_names, paste(col, "as", row))
    }
  }
  names(resum) <- c("model", "parameter","geneset",
                  "accuracy", "kappa",cont.mat_names)
  return(resum)
}

#### DATA all.F ####
## ALL genes analysis FULL data
data <- t(v.F$E[all.a1, clust.ids.F])

#k mean execution
set.seed(666333666)
km <- kmeans(data,centers = 3) #three groups
fig_clus<- fviz_cluster(object = km,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_clus

##Evaluation


resum <- eval.km(result = km$cluster,
                 group.clust = clust.F,
                 geneset = "ALL",parameter.e = "3 groups")

#kmean table
kme.all.F <- resum
kme.all.F
##    model parameter geneset accuracy kappa colon as colon colon as lgg
## 1 kmeans  3 groups     ALL    0.924 0.879            521            0
##   colon as gbm lgg as colon lgg as lgg lgg as gbm gbm as colon gbm as lgg
## 1            0            0        444         85            0          8
##   gbm as gbm
## 1        166
#### DATA DEG.F ####
## ALL genes analysis FULL data
data <- t(v.F$E[deg.a1, clust.ids.F])

#k mean execution
set.seed(666333666)
km <- kmeans(data,centers = 3) #three groups
fig_clus<- fviz_cluster(object = km,
                        data = data,
                        geom = c("text"),
                        labelsize = 7,
                        ggtheme = theme_bw(),
                        main = paste())
fig_clus

##Evaluation


resum <- eval.km(result = km$cluster,
                 group.clust = clust.F,
                 geneset = "DEG",parameter.e = "3 groups")


#kmean table
kme.DEG.F <- resum
kme.DEG.F
##    model parameter geneset accuracy kappa colon as colon colon as lgg
## 1 kmeans  3 groups     DEG    0.924 0.879            521            0
##   colon as gbm lgg as colon lgg as lgg lgg as gbm gbm as colon gbm as lgg
## 1            0            0        444         85            0          8
##   gbm as gbm
## 1        166

Hierarchical clustering

#### Hierarchical clustering

#### DATA all.F ####
## ALL genes analysis FULL data
data <- t(v.F$E[all.a1, clust.ids.F])

set.seed(123)
d <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
hc <- hclust(d, method = "ward.D" )
# Cut tree into 3 groups
sub_grp <- cutree(hc, k = 3)

# Plot full dendogram
fig_hc <-fviz_dend(
  hc,
  k = 3,
  horiz = FALSE,
  rect = TRUE,
  rect_fill = TRUE,
  rect_border = "jco",
  k_colors = "jco",
  cex = 0.3
)
fig_hc

#evaluation
#function of evaluation of km model can be used here
resum <- eval.km(result = sub_grp, group.clust = clust.F,
                 geneset = "ALL",parameter.e = "cutree 3",
                 model = "hclust")

hcl.all.F <- resum
hcl.all.F
##    model parameter geneset accuracy kappa gbm as gbm gbm as lgg gbm as colon
## 1 hclust  cutree 3     ALL    0.884  0.82        169          5            0
##   lgg as gbm lgg as lgg lgg as colon colon as gbm colon as lgg colon as colon
## 1        137        392            0            0            0            521
#### DATA DEG.F ####
## DEG genes analysis FULL data
data <- t(v.F$E[deg.a1, clust.ids.F])

set.seed(123)
d <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
hc <- hclust(d, method = "ward.D" )
# Cut tree into 3 groups
sub_grp <- cutree(hc, k = 3)

# Plot full dendogram
fig_hc <-fviz_dend(
  hc,
  k = 3,
  horiz = FALSE,
  rect = TRUE,
  rect_fill = TRUE,
  rect_border = "jco",
  k_colors = "jco",
  cex = 0.3
)
fig_hc

#evaluation
#function of evaluation of km model can be used here
resum <- eval.km(result = sub_grp, group.clust = clust.F,
                 geneset = "DEG",parameter.e = "cutree 3",
                 model = "hclust")

hcl.DEG.F <- resum
hcl.DEG.F
##    model parameter geneset accuracy kappa gbm as gbm gbm as lgg gbm as colon
## 1 hclust  cutree 3     DEG    0.921 0.874        157         17            0
##   lgg as gbm lgg as lgg lgg as colon colon as gbm colon as lgg colon as colon
## 1         80        449            0            0            0            521

Gaussian Mixture Model (GMM)

For GMM and all genes dataset algorith couln’t be implemented due to stack overflow related problem.

#### Gaussian Mixture Model

#### DATA all.F ####
## ALL genes analysis FULL data
data <- t(v.F$E[all.a1, clust.ids.F])

set.seed(1234567)
#gmm model 
#gmm <- Mclust(data, G = 3)

#fig_gmm <- fviz_cluster(object = gmm,
#             data = data,
 #            geom = c("text"),
 #            labelsize = 7,
 #            ggtheme = theme_bw(),
 #            main = paste())
#fig_gmm

#evaluation
#function of evaluation of km model can be  also used here
#resum <- eval.km(result = gmm$classification, group.clust = clust.F,
#                 geneset = "ALL",parameter.e = "G 3",
#                 model = "hclust")
#
#gmm.all.F <- resum
#gmm.all.F

#### DATA DEG.F ####
## DEG genes analysis FULL data
data <- t(v.F$E[deg.a1, clust.ids.F])

set.seed(1234567)
#gmm model 
gmm <- Mclust(data, G = 3)

fig_gmm <- fviz_cluster(object = gmm,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_gmm

#evaluation
#function of evaluation of km model can be  also used here
resum <- eval.km(result = gmm$classification, group.clust = clust.F,
                 geneset = "DEG",parameter.e = "G 3",
                 model = "GMM")

gmm.DEG.F <- resum
gmm.DEG.F
##   model parameter geneset accuracy kappa gbm as gbm gbm as lgg gbm as colon
## 1   GMM       G 3     DEG    0.905 0.851        166          8            0
##   lgg as gbm lgg as lgg lgg as colon colon as gbm colon as lgg colon as colon
## 1        108        421            0            0            0            521

Density-based spatial clustering of applications with noise (DBSCAN)

#### DBSCAN clust

#### DATA all.F ####
## ALL genes analysis FULL data
data <- t(v.F$E[all.a1, clust.ids.F])

#to select the variable eps it is displayed a knndistplot
kNNdistplot(data, k = 50)
abline(h = 225, lty = 2)

#DBSCAN algorithm
set_eps <- 225
minpoints <- 25
dbs <- dbscan(data,eps = set_eps, MinPts = minpoints)
## Warning in dbscan(data, eps = set_eps, MinPts = minpoints): converting argument
## MinPts (fpc) to minPts (dbscan)!
fig_dbs <- fviz_cluster(object = dbs,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_dbs

#evaluation
#function of evaluation of km model can be  also used here
resum <- eval.km(result = dbs$cluster, 
                 group.clust = clust.F,
                 geneset = "ALL",parameter.e = "EPS = 225,
                 minp = 25",
                 model = "dbscan")

dbs.all.F <- resum
dbs.all.F
##    model                              parameter geneset accuracy  kappa
## 1 dbscan EPS = 225,\n                 minp = 25     ALL    0.011 -0.182
##   gbm as gbm gbm as colon colon as gbm colon as colon
## 1          2          172           16              0
#### DATA DEG.F ####
## DEG genes analysis FULL data
data <- t(v.F$E[deg.a1, clust.ids.F])

#to select the variable eps it is displayed a knndistplot
kNNdistplot(data, k = 25)
abline(h = 160, lty = 2)

#DBSCAN algorithm
set_eps <- 160
minpoints <- 25
dbs <- dbscan(data,eps = set_eps, MinPts = minpoints)
## Warning in dbscan(data, eps = set_eps, MinPts = minpoints): converting argument
## MinPts (fpc) to minPts (dbscan)!
fig_dbs <- fviz_cluster(object = dbs,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_dbs

#evaluation
#function of evaluation of km model can be  also used here
resum <- eval.km(result = dbs$cluster, 
                 group.clust = clust.F,
                 geneset = "DEG",parameter.e = "EPS = 180,
                 minp = 25",
                 model = "dbscan")

dbs.DEG.F <- resum
dbs.DEG.F
##    model                              parameter geneset accuracy  kappa
## 1 dbscan EPS = 180,\n                 minp = 25     DEG    0.015 -0.248
##   gbm as gbm gbm as colon colon as gbm colon as colon
## 1          3          171           22              0

Machine Learning conclusions for analysis 1

Chunk for create a table of ML conclusions.

#final table resum
resum_fin.a1 <- rbind(knn.all.F[,1:5],
                      knn.DEG.F[,1:5],
                      kme.all.F[,1:5],
                      kme.DEG.F[,1:5],
                      hcl.all.F[,1:5],
                      hcl.DEG.F[,1:5],
                      #gmm.all.F[,1:5],
                      gmm.DEG.F[,1:5],
                      dbs.all.F[,1:5],
                      dbs.DEG.F[,1:5]
)

writexl::write_xlsx(x = resum_fin.a1,path = "DEAsets/ml.a1conclusions.xlsx")

kable(resum_fin.a1,row.names = FALSE) %>%
  kable_styling(position = "center")
model parameter geneset accuracy kappa
kNN k = 3 ALL 0.980 0.967
kNN k = 5 ALL 0.985 0.976
kNN k = 3 DEG 0.980 0.968
kNN k = 5 DEG 0.983 0.972
kmeans 3 groups ALL 0.924 0.879
kmeans 3 groups DEG 0.924 0.879
hclust cutree 3 ALL 0.884 0.820
hclust cutree 3 DEG 0.921 0.874
GMM G 3 DEG 0.905 0.851
dbscan EPS = 225, minp = 25 ALL 0.011 -0.182
dbscan EPS = 180, minp = 25 DEG 0.015 -0.248

Machine Learning for analysis 2

#col_cont.mat
str_cancer <- c("gbm","lgg")
count <- 1
col_cont.mat2 <- c()
for (i in 1:2){
  for (j in 1:2){
    col_cont.mat2[count] <- paste(str_cancer[i],str_cancer[j], sep = "_as_")
    count <- count + 1
  }
}

Supervised analysis method

For supervised analysis 2 we need to build train and test dataset again.

#### Building training and test dataset.
#dataset train and test
set.seed(123456789)

#numbers of data for each dataset
n_train <- round(0.67*length(clust.S),0)
n_test <- round(0.33*length(clust.S),0)

#ids for each dataset
train_ids <- sort(sample(x = 1:length(clust.S),size = n_train,replace = FALSE))
test_ids <- c(1:length(clust.S))[-train_ids]

#building training and test dataset
train_data <- list(all.S = v.S$E[all.a2,train_ids],
                   DEG.S = v.S$E[deg.a2,train_ids])
test_data <- list(all.S = v.S$E[all.a2,test_ids],
                   DEG.S = v.S$E[deg.a2,test_ids])

#labelling dataset
train_label <- clust.S[train_ids]
test_label <- clust.S[test_ids]

#proportions
#train dataset
round(prop.table(table(train_label)),3)*100
## train_label
##  gbm  lgg 
## 25.3 74.7
#test dataset
round(prop.table(table(test_label)),3)*100
## test_label
##  gbm  lgg 
## 23.7 76.3
#dataset
round(prop.table(table(clust.S)),3)*100
## clust.S
##  gbm  lgg 
## 24.8 75.2

K nearest neighbourhood (Knn)

### Knn algorithm
#Evaluating models with different k values (neighbours)
ks <- c(3,5)

#function to evaluate knn models
eval.knn2 <-function(model, geneset, n.mod,
                      cm = cont.mat,parameter.e = parametro, 
                      accuracy.e = accuracy, kappa = kappa.e){
  modelos <- c(rep(model,n.mod))
  gens <- c(rep(geneset,n.mod))
  resum <- data.frame(modelos, parameter.e, gens,
                    round(accuracy.e,3), round(kappa.e,3), 
                    cont.mat)
  names(resum) <- c("model", "parameter", "geneset", 
                  "accuracy", "kappa", col_cont.mat2)
  return(resum)
}

#### DATA all.S ####
## ALL genes analysis sim data
data <- getset(set = "all.S")

#reseting variables
reset.var.s()

#for loop to execute knn algorithm with differen k values
j <- 0 #counter
for (i in ks){
  j <- j +1 #add 1 to counter
  #execution of knn value k = i
  test_pred <- knn(train = t(data$train), 
                   test = t(data$test), 
                   cl = train_label, 
                   k=i, 
                   prob = TRUE)
  
  #confusion matrix
  conf_knn <- confusionMatrix(test_pred, test_label)
  
  #variables of confusion matrix to save the model
  parametro[j] <- paste("k = ", i)
  cont.mat<- rbind(cont.mat, c(conf_knn[["table"]]))
  accuracy[j] <- conf_knn[["overall"]][["Accuracy"]]
  kappa.e[j] <- conf_knn[["overall"]][["Kappa"]]
}

#evaluation
resum <- eval.knn2(model = "kNN",
                  n.mod = 2,
                  geneset = "ALL",
                  parameter.e = parametro,
                  kappa = kappa.e)
#tabla from knn
knn.all.S <- resum
knn.all.S
##   model parameter geneset accuracy kappa gbm_as_gbm gbm_as_lgg lgg_as_gbm
## 1   kNN    k =  3     ALL    0.966 0.906         52          3          5
## 2   kNN    k =  5     ALL    0.957 0.882         51          4          6
##   lgg_as_lgg
## 1        172
## 2        171
#### DATA DEG.S ####
## DEG genes analysis sim data
data <- getset(set = "DEG.S")

#reseting variables
reset.var.s()

#for loop to execute knn algorithm with differen k values
j <- 0 #counter
for (i in ks){
  j <- j +1 #add 1 to counter
  #execution of knn value k = i
  test_pred <- knn(train = t(data$train), 
                   test = t(data$test), 
                   cl = train_label, 
                   k=i, 
                   prob = TRUE)
  
  #confusion matrix
  conf_knn <- confusionMatrix(test_pred, test_label)
  
  #variables of confusion matrix to save the model
  parametro[j] <- paste("k = ", i)
  cont.mat<- rbind(cont.mat, c(conf_knn[["table"]]))
  accuracy[j] <- conf_knn[["overall"]][["Accuracy"]]
  kappa.e[j] <- conf_knn[["overall"]][["Kappa"]]
}

#evaluation
#evaluation for models of knn

resum <- eval.knn2(model = "kNN",
                  n.mod = 2,
                  geneset = "DEG",
                  parameter.e = parametro,
                  kappa = kappa.e)
#tabla from knn
knn.DEG.S <- resum
knn.DEG.S
##   model parameter geneset accuracy kappa gbm_as_gbm gbm_as_lgg lgg_as_gbm
## 1   kNN    k =  3     DEG    1.000 1.000         55          0          0
## 2   kNN    k =  5     DEG    0.996 0.988         54          1          0
##   lgg_as_lgg
## 1        177
## 2        177

Non-Supervised analysis method

K mean

### Kmean algorithm
#function to evaluate kmean models
eval.km2 <- function(result, group.clust,
                    geneset, parameter.e,
                    model = "kmeans"){
  kmeans <- result
  group <- group.clust
                    
  #assign each cluster with the level group
  km_eval <- data.frame(cluster = kmeans,
                        group = group)

  levels_new_group <- c()
  for (i in 1:2){
    km_eval$new_group[km_eval$group == levels(group)[i]] <- 
      which.max(tabulate(km_eval$cluster[km_eval$group == levels(group)[i]]))
  }
  for (i in 1:2){
    levels_new_group[i] <- as.character(km_eval$group[which(km_eval$new_group == i)])[2]
  }
  
  actual_label <- factor(km_eval$group, levels = levels_new_group)
  predict_cluster <- as.factor(km_eval$cluster)
  levels(predict_cluster) <- levels_new_group

  #reseting variables
  reset.var.s()
  
  #to evaluate confusionmatrix
  con_mat <- confusionMatrix(predict_cluster,actual_label)
  cont.mat<- rbind(cont.mat,c(con_mat[["table"]]))
  accuracy <- con_mat[["overall"]][["Accuracy"]]
  kappa.e <- con_mat[["overall"]][["Kappa"]]

  #resumen
  resum <- data.frame(model, parameter.e, geneset,
                    round(accuracy,3), round(kappa.e,3), 
                    cont.mat)
  cont.mat_names <- c()
  for (col in colnames(con_mat[["table"]])){
    for (row in rownames(con_mat[["table"]])){
      cont.mat_names <- append(cont.mat_names, paste(col, "as", row))
    }
  }
  names(resum) <- c("model", "parameter","geneset",
                  "accuracy", "kappa",cont.mat_names)
  return(resum)
}

#### DATA all.S ####
## ALL genes analysis FULL data
data <- t(v.S$E[all.a2, clust.ids.S])

#k mean execution
set.seed(1234567)
km <- kmeans(data,centers = 2) #two groups
fig_clus<- fviz_cluster(object = km,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_clus

##Evaluation


resum <- eval.km(result = km$cluster,
                 group.clust = clust.S,
                 geneset = "ALL",parameter.e = "2 groups")

#kmean table
kme.all.S <- resum
kme.all.S
##    model parameter geneset accuracy kappa lgg as lgg lgg as gbm gbm as lgg
## 1 kmeans  2 groups     ALL    0.868 0.691        444         85          8
##   gbm as gbm
## 1        166
#### DATA DEG.F ####
## ALL genes analysis FULL data
data <- t(v.S$E[deg.a2, clust.ids.S])

#k mean execution
#set.seed(1234)
km <- kmeans(data,centers = 2) #three groups
fig_clus<- fviz_cluster(object = km,
                        data = data,
                        geom = c("text"),
                        labelsize = 7,
                        ggtheme = theme_bw(),
                        main = paste())
fig_clus

##Evaluation


resum <- eval.km(result = km$cluster,
                 group.clust = clust.S,
                 geneset = "DEG",parameter.e = "2 groups")


#kmean table
kme.DEG.S <- resum
kme.DEG.S
##    model parameter geneset accuracy kappa gbm as gbm gbm as lgg lgg as gbm
## 1 kmeans  2 groups     DEG    0.902 0.763        168          6         63
##   lgg as lgg
## 1        466

Hierarchical clustering

#### Hierarchical clustering

#### DATA all.S ####
## ALL genes analysis sim data
data <- t(v.S$E[all.a2, clust.ids.S])

set.seed(123)
d <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
hc <- hclust(d, method = "ward.D" )
# Cut tree into 2 groups
sub_grp <- cutree(hc, k = 2)

# Plot full dendogram
fig_hc <-fviz_dend(
  hc,
  k = 2,
  horiz = FALSE,
  rect = TRUE,
  rect_fill = TRUE,
  rect_border = "jco",
  k_colors = "jco",
  cex = 0.3
)
fig_hc

#evaluation
#function of evaluation of km model can be used here
resum <- eval.km(result = sub_grp, group.clust = clust.S,
                 geneset = "ALL",parameter.e = "cutree 2",
                 model = "hclust")

hcl.all.S <- resum
hcl.all.S
##    model parameter geneset accuracy kappa gbm as gbm gbm as lgg lgg as gbm
## 1 hclust  cutree 2     ALL    0.798 0.558        162         12        130
##   lgg as lgg
## 1        399
#### DATA DEG.S ####
## DEG genes analysis sim data
data <- t(v.S$E[deg.a2, clust.ids.S])

set.seed(123)
d <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
hc <- hclust(d, method = "ward.D" )
# Cut tree into 2 groups
sub_grp <- cutree(hc, k = 2)

# Plot full dendogram
fig_hc <-fviz_dend(
  hc,
  k = 2,
  horiz = FALSE,
  rect = TRUE,
  rect_fill = TRUE,
  rect_border = "jco",
  k_colors = "jco",
  cex = 0.3
)
fig_hc

#evaluation
#function of evaluation of km model can be used here
resum <- eval.km(result = sub_grp, group.clust = clust.S,
                 geneset = "DEG",parameter.e = "cutree 2",
                 model = "hclust")

hcl.DEG.S <- resum
hcl.DEG.S
##    model parameter geneset accuracy kappa gbm as gbm gbm as lgg lgg as gbm
## 1 hclust  cutree 2     DEG    0.832 0.627        169          5        113
##   lgg as lgg
## 1        416

Gaussian Mixture Model (GMM)

For GMM and all genes dataset algorith couln’t be implemented due to stack overflow related problem.

#### Gaussian Mixture Model

#### DATA all.S ####
## ALL genes analysis sim data
data <- t(v.S$E[all.a2, clust.ids.S])

set.seed(1234567)
#gmm model 
#gmm <- Mclust(data, G = 2)

#fig_gmm <- fviz_cluster(object = gmm,
#             data = data,
#             geom = c("text"),
#             labelsize = 7,
#             ggtheme = theme_bw(),
#             main = paste())
#fig_gmm

#evaluation
#function of evaluation of km model can be  also used here
#resum <- eval.km(result = gmm$classification, group.clust = clust.S,
#                 geneset = "ALL",parameter.e = "G 2",
#                 model = "GMM")

#gmm.all.S <- resum
#gmm.all.S

#### DATA DEG.S ####
## DEG genes analysis sim data
data <- t(v.S$E[deg.a2, clust.ids.S])

set.seed(1234567)
#gmm model 
gmm <- Mclust(data, G = 2)

fig_gmm <- fviz_cluster(object = gmm,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_gmm

#evaluation
#function of evaluation of km model can be  also used here
resum <- eval.km(result = gmm$classification, group.clust = clust.S,
                 geneset = "DEG",parameter.e = "G 2",
                 model = "GMM")

gmm.DEG.S <- resum
gmm.DEG.S
##   model parameter geneset accuracy kappa gbm as gbm gbm as lgg lgg as gbm
## 1   GMM       G 2     DEG    0.993 0.981        169          5          0
##   lgg as lgg
## 1        529

Density-based spatial clustering of applications with noise (DBSCAN)

#### DBSCAN clust

#### DATA all.S ####
## ALL genes analysis sim data
data <- t(v.S$E[all.a2, clust.ids.S])

#to select the variable eps it is displayed a knndistplot
kNNdistplot(data, k = 15)
abline(h = 150, lty = 2)

#DBSCAN algorithm
set_eps <- 140
minpoints <- 15
dbs <- dbscan(data,eps = set_eps, MinPts = minpoints)
## Warning in dbscan(data, eps = set_eps, MinPts = minpoints): converting argument
## MinPts (fpc) to minPts (dbscan)!
fig_dbs <- fviz_cluster(object = dbs,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_dbs #only one group so it won't be evaluated

#evaluation
#function of evaluation of km model can be  also used here
resum <- eval.km(result = dbs$cluster, 
                 group.clust = clust.S,
                 geneset = "ALL",parameter.e = "EPS = 140,
                 minp = 15",
                 model = "dbscan")

dbs.all.S <- resum
dbs.all.S
##    model                              parameter geneset accuracy  kappa
## 1 dbscan EPS = 140,\n                 minp = 15     ALL    0.268 -0.244
##   lgg as lgg lgg as gbm gbm as lgg gbm as gbm
## 1        153        373         78         12
#### DATA DEG.S ####
## DEG genes analysis sim data
data <- t(v.S$E[deg.a2, clust.ids.S])

#to select the variable eps it is displayed a knndistplot
kNNdistplot(data, k = 15)
abline(h = 55, lty = 2)

#DBSCAN algorithm
set_eps <- 50
minpoints <- 15
dbs <- dbscan(data,eps = set_eps, MinPts = minpoints)
## Warning in dbscan(data, eps = set_eps, MinPts = minpoints): converting argument
## MinPts (fpc) to minPts (dbscan)!
fig_dbs <- fviz_cluster(object = dbs,
             data = data,
             geom = c("text"),
             labelsize = 7,
             ggtheme = theme_bw(),
             main = paste())
fig_dbs

#evaluation
#function of evaluation of km model can be  also used here
resum <- eval.km(result = dbs$cluster, 
                 group.clust = clust.S,
                 geneset = "DEG",parameter.e = "EPS = 50,
                 minp = 15",
                 model = "dbscan")

dbs.DEG.S <- resum
dbs.DEG.S
##    model                             parameter geneset accuracy  kappa
## 1 dbscan EPS = 50,\n                 minp = 15     DEG    0.033 -0.859
##   gbm as gbm gbm as lgg lgg as gbm lgg as lgg
## 1          8        161        105          1

Machine Learning conclusions for analysis 2

Chunk for create a table of ML conclusions.

#final table resum
resum_fin.a2 <- rbind(knn.all.S[,1:5],
                      knn.DEG.S[,1:5],
                      kme.all.S[,1:5],
                      kme.DEG.S[,1:5],
                      hcl.all.S[,1:5],
                      hcl.DEG.S[,1:5],
                      #gmm.all.S[,1:5],
                      gmm.DEG.S[,1:5],
                      dbs.all.S[,1:5],
                      dbs.DEG.S[,1:5])


kable(resum_fin.a2,row.names = FALSE) %>%
  kable_styling(position = "center")
model parameter geneset accuracy kappa
kNN k = 3 ALL 0.966 0.906
kNN k = 5 ALL 0.957 0.882
kNN k = 3 DEG 1.000 1.000
kNN k = 5 DEG 0.996 0.988
kmeans 2 groups ALL 0.868 0.691
kmeans 2 groups DEG 0.902 0.763
hclust cutree 2 ALL 0.798 0.558
hclust cutree 2 DEG 0.832 0.627
GMM G 2 DEG 0.993 0.981
dbscan EPS = 140, minp = 15 ALL 0.268 -0.244
dbscan EPS = 50, minp = 15 DEG 0.033 -0.859

References

Alexa, Adrian, and Jörg Rahnenführer. 2009. “Gene Set Enrichment Analysis with topGO.” Bioconductor Improv 27.

Huber, W., V. J. Carey, R. Gentleman, S. Anders, M. Carlson, B. S. Carvalho, H. C. Bravo, et al. 2015. “Orchestrating High-Throughput Genomic Analysis with Bioconductor.” Nature Methods 12 (2): 115–21. http://www.nature.com/nmeth/journal/v12/n2/full/nmeth.3252.html.

Law, Charity W, Monther Alhamdoosh, Shian Su, Xueyi Dong, Luyi Tian, Gordon K Smyth, and Matthew E Ritchie. 2016. “RNA-Seq Analysis Is Easy as 1-2-3 with Limma, Glimma and edgeR.” F1000Research 5.

Law, Charity W, Yunshun Chen, Wei Shi, and Gordon K Smyth. 2014. “Voom: Precision Weights Unlock Linear Model Analysis Tools for Rna-Seq Read Counts.” Genome Biology 15 (2): R29.

McCarthy, Davis J, and Gordon K Smyth. 2009. “Testing Significance Relative to a Fold-Change Threshold Is a Treat.” Bioinformatics 25 (6): 765–71.

Ritchie, Matthew E, Belinda Phipson, DI Wu, Yifang Hu, Charity W Law, Wei Shi, and Gordon K Smyth. 2015. “Limma Powers Differential Expression Analyses for Rna-Sequencing and Microarray Studies.” Nucleic Acids Research 43 (7): e47–e47.

Robinson, Mark D, Davis J McCarthy, and Gordon K Smyth. 2010. “EdgeR: A Bioconductor Package for Differential Expression Analysis of Digital Gene Expression Data.” Bioinformatics 26 (1): 139–40.

Slenter, Denise N, Martina Kutmon, Kristina Hanspers, Anders Riutta, Jacob Windsor, Nuno Nunes, Jonathan Mélius, et al. 2018. “WikiPathways: A Multifaceted Pathway Database Bridging Metabolomics to Other Omics Research.” Nucleic Acids Research 46 (D1): D661–D667.

Xie, Yihui. 2014. “Knitr: A Comprehensive Tool for Reproducible Research in R.” In Implementing Reproducible Computational Research, edited by Victoria Stodden, Friedrich Leisch, and Roger D. Peng. Chapman; Hall/CRC. http://www.crcpress.com/product/isbn/9781466561595.

Xie, Yihui, Christophe Dervieux, and Emily Riederer. 2020. R Markdown Cookbook. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown-cookbook.